2010-12-13 28 views
0

Qu'est-ce que l'apparence de définition de schéma XML correspondant comme pour le code XML suivant:XML Schema Definition problème

<Categories> 
    <Category id="1">One</Category> 
    <Category id="2">Two</Category> 
    <Category id="3">Three</Category> 
</Categories> 

je ne peux pas savoir comment déclarer PCDATA et l'annotation en même temps.

Merci!

Répondre

1

Je ne sais pas de quoi vous parlez lorsque vous mentionnez «PCData» et «l'annotation».

est ici un schéma très simple basé sur le XML que vous avez fourni:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Categories"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Category" maxOccurs="unbounded"> 
        <xs:complexType> 
         <xs:simpleContent> 
          <xs:extension base="xs:string"> 
           <xs:attribute name="id" type="xs:int" use="required"/> 
          </xs:extension> 
         </xs:simpleContent> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element></xs:schema> 
+0

cvc- complex-type.2.1: L'élément 'Category' ne doit contenir aucun élément d'information caractère ou élément [enfants], car le type de contenu du type est vide. –

+0

Comme vous l'avez peut-être remarqué, vous rencontrez exactement mon problème avec votre déclaration .... –

+0

Je ne suis pas autorisé à mettre un, deux ou trois dans l'élément Tag (que j'ai appelé PCData - désolé si cela était trompeur) –

0

Ok got it:

<xs:complexType name="Cities"> 
    <xs:sequence> 
     <xs:element name="City" minOccurs="1" maxOccurs="unbounded"> 
      <xs:complexType> 
       <xs:simpleContent> 
        <xs:restriction base="xs:string"></xs:restriction> 
       </xs:simpleContent> 
       <xs:attribute name="id" type="xs:integer" /> 
      </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
</xs:complexType> 
+0

Et THATS comment cela fonctionne même avec la génération JAXB: –

4

Et voilà comment cela fonctionne même avec JAXB

<xs:complexType name="Cities"> 
     <xs:sequence> 
      <xs:element name="City" minOccurs="1" maxOccurs="unbounded"> 
       <xs:complexType mixed="true"> 
        <xs:simpleContent> 
         <xs:extension base="xs:string"> 
          <xs:attribute name="id" type="xs:integer" /> 
         </xs:extension> 
        </xs:simpleContent> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType>