2010-08-05 11 views
15

Al escribir un esquema XML, que estoy tratando de hacer algo como estoUsando xs: extension & xs: ¿restricción junto?

<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> 

Desafortunadamente, xs: atributo está permitido en xs: extensión mientras xs: minInclusive & xs: maxInclusive están permitidos en xs: restricción, pero no juntos.

¿Cuál es la mejor manera de estructurar esto? ¿Debo definir una extensión con las unidades apropiadas & y luego restringirla con mis valores mínimos de &?

Respuesta

15

es necesario definir la restricción en el doble 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, me preguntaba si esto es lo que tendría que hacer y la esperanza yo no. Decidí cambiar el orden para tener un DoubleSecondsType y las implementaciones específicas lo restringen. – oconnor0

+0

He intentado esto, me da un error en diciendo que 'complexType' ya existe en el modelo de contenido. ¿Cómo arreglar eso? – Srini

Cuestiones relacionadas