2010-08-05 6 views
15

Lors de l'écriture d'un schéma XML, je tente de faire quelque chose comme çaUtilisation de xs: extension & xs: restriction ensemble?

<xs:complexType name="ValueWithUnits"> 
    <xs:simpleContent> 
     <xs:extension base="xs:double"> 
      <xs:attribute name="uom" fixed="second"/> 
      <xs:minInclusive="0"/> 
      <xs:maxInclusive="10"/> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

Malheureusement, xs: attribute est autorisé sur xs: extension tant que xs: minInclusive & xs: maxInclusive sont autorisés sur xs: restriction, mais pas ensemble.

Quelle est la meilleure façon de structurer cela? Dois-je définir une extension avec les unités appropriées & puis la restreindre avec mes valeurs minimales & min?

Répondre

15

Vous devez définir la restriction sur le double separatley

<?xml version="1.0" encoding="utf-8" ?> 
<!--Created with Liquid XML Studio Developer Edition 8.1.4.2482 (http://www.liquid-technologies.com)--> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:simpleType name="RestrictedDouble"> 
     <xs:restriction base="xs:double"> 
      <xs:minInclusive value="0" /> 
      <xs:maxInclusive value="10" /> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:complexType name="ValueWithUnits"> 
     <xs:simpleContent> 
      <xs:extension base="RestrictedDouble"> 
       <xs:attribute name="uom" fixed="second" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:schema> 
+0

Ok, je me demandais si c'est ce que je dois faire et en espérant que je ne. J'ai décidé de retourner la commande afin de disposer d'un DoubleSecondsType et des implémentations spécifiques limitent celle-ci. – oconnor0

+0

J'ai essayé ceci, c'est en me donnant une erreur à en disant que 'complexType' existe déjà dans le modèle de contenu. Comment réparer ça? – Srini

Questions connexes