2011-03-23 4 views
0

Je ce schéma:
Fragment 1:schéma XML représentent différents fragments ref

<fragments> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
</fragments> 

fragment2:

<fragments> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
</fragments> 

fragment3:

<fragments> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
</fragments> 


    <xs:element name="Fragments"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="A"/> 
      <xs:element ref="B"/> 
      <xs:element ref="C"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="A"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="B"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="C"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="item"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="location"/> 
      <xs:element name="quantity"/> 
      <xs:element name="name"/> 
      <xs:element name="payment"/> 
      <xs:element name="description"/> 
      <xs:element name="shipping"/> 
      <xs:element name="incategory" maxOccurs="unbounded"/> 
      <xs:element name="mailbox"/> 
     </xs:sequence> 
     <xs:attribute name="id" type="xs:ID" use="required"/> 
     <xs:attribute name="featured" type="xs:anySimpleType"/> 
    </xs:complexType> 
</xs:element> 

de la réponse de la question how xsd can represent different xml file? Je peux dire que je peux represe nt A et B et C dans différentes partitions en utilisant ref dans le schéma Cependant ma question le schéma utilise Item avec ref pour réduire la répétition de la définition des noms. Comment puis-je faire la distinction entre ref qui représente un autre fragment et ref qui est juste utilisé dans le schéma pour éviter les répétitions mes salutations

+0

Je n'ai pas vu de réponse ..Je veux voir bientôt :) – Dena

Répondre

0

Votre question n'est pas claire pour moi, mais je pense que vous demandez, "Comment puis-je indiquer que A, B, et C peuvent être des racines de document, mais item ne peut pas être une racine de document? "

Il n'existe aucun moyen d'indiquer quels éléments globaux peuvent être des racines de document. Cependant, vous pouvez rendre votre déclaration d'élément "internal" locale à un groupe de modèles et refuter ce groupe de modèles.

Peut-être quelque chose comme:

<xs:element name="A"> 
    <xs:complexType> 
     <xs:sequence> 
      <group ref="itemgroup" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:group name="itemgroup"> 
    <xs:sequence> 
     <xs:element name="item> 
      ... 
     </xs:element> 
    </xs:sequence> 
</xs:group> 

BTW, si je comprends bien ai votre objectif, vous n'avez pas réellement besoin les Fragments éléments. Juste l'existence de déclarations de «haut niveau» pour A, B et C en fait des candidats pour une salle de documents.

+0

J'ai essayé d'écrire des données XML que je souhaite le schéma pour représenter .. Ce que je voulais dire ici est-ce que j'utilise REF pour réduire le définitions d'éléments mais je peux l'utiliser pour représenter un schéma de données différent comme ce fragment .. Dena

+0

@Dena Quel XML essayez-vous d'éviter d'être valide? A, B et C dans le même fragment? Ou entrelacé? – xan

Questions connexes