2014-09-08 1 views
1

Voici mon exemple naïfEst-il possible de faire une restriction sur un type complexe imbriquée

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 

    <xs:complexType name="dog"> 
     <xs:sequence> 
      <xs:element name="name"> 
       <xs:complexType> 
        <xs:choice> 
         <xs:element name="known" type="xs:string"/> 
         <xs:element name="unknown"/> 
        </xs:choice> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="breed" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="bigDog"> 
     <xs:complexContent> 
      <xs:restriction base="dog"> 
       <xs:sequence> 
        <xs:element name="name"> 
         <xs:complexType> 
          <xs:choice> 
           <xs:element name="known" type="xs:string"/> 
           <xs:element name="unknown"/> 
          </xs:choice> 
         </xs:complexType> 
        </xs:element> 
        <xs:element name="breed" type="xs:string" fixed="grand danois"/> 
       </xs:sequence> 
      </xs:restriction> 
     </xs:complexContent> 
    </xs:complexType> 
</xs:schema> 

oxygène me donne: Erreur de type « bigdog ». La particule de type n'est pas une restriction valide de la particule de la base.

Est-il possible de faire quelque chose comme ça?

Répondre

0

Je ne sais pas vraiment ce que ça fait. Peut-être une erreur de XSD 1.0? Mais ceci est valable

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 

    <xs:complexType name="dogNameType"> 
     <xs:choice> 
      <xs:element name="known" type="xs:string"/> 
      <xs:element name="unknown"/> 
     </xs:choice> 
    </xs:complexType> 

    <xs:complexType name="dog"> 
     <xs:sequence> 
      <xs:element name="name" type="dogNameType"/> 
      <xs:element name="breed" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="bigDog"> 
     <xs:complexContent> 
      <xs:restriction base="dog"> 
       <xs:sequence> 
        <xs:element name="name" type="dogNameType"/> 
        <xs:element name="breed" type="xs:string" fixed="grand danois"/> 
       </xs:sequence> 
      </xs:restriction> 
     </xs:complexContent> 
    </xs:complexType> 

</xs:schema> 
Questions connexes