Estoy creando un esquema XML que almacena información sobre casas.Esquema XML Cómo declarar el precio y la moneda
Quiero almacenar el price
y el currency
.
Tengo sentido en mi mente declarar esto teniendo la moneda como un atributo del elemento de precio.
Además, quiero restringir los valores que se pueden ingresar como currency
a libras, euros o dólares.
Ejem:
<price currency="euros">10000.00</price>
Así que en este momento estoy declarando esto en mi esquema XML como:
<!-- House Price, and the currency as an attribute -->
<xs:element name="price">
<xs:complexType>
<xs:attribute name="currency">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="pounds" />
<xs:enumeration value="euros" />
<xs:enumeration value="dollars" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
El problema que tengo con esto:
- I No estoy exactamente seguro de si esto restringirá el elemento de atributo a
pounds, euros or dollars
Me parece que no puede especificar un
type
sobre el precio de una habitación doble, ya que me gustaría debido al error:Element 'price' has both a 'type' attribute and a 'anonymous type' child. Only one of these is allowed for an element.
¿Debo mantenerlo simple y declararlos como elementos separados:
<price>10000.00</price>
<currency>euros</currency>
... ¿o estoy en el camino correcto?
Hola Michael, agradezco la respuesta, pero todavía estoy un poco confundido. ¿Es el "tipo complejo con contenido simple" para el atributo, o para el elemento 'precio' en general? Supongo que no podrías darme un ejemplo. Gracias de nuevo :) – Luke