Elemento <anyAttribute> XSD
- Página anterior XSD <any>
- Página siguiente Reemplazo de elemento XSD
El elemento <anyAttribute> nos permite expandir el documento XML a través de atributos no especificados por el esquema!
El elemento <anyAttribute>
El elemento <anyAttribute> nos permite expandir el documento XML a través de atributos no especificados por el esquema!
Este ejemplo es una fragmento de un esquema XML denominado "family.xsd". Nos muestra una declaración para el elemento "person". Al usar el elemento <anyAttribute>, podemos agregar una cantidad ilimitada de atributos al elemento "person":
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>
Ahora, esperamos expandir el elemento "person" a través de la propiedad "gender". En este caso, podemos hacerlo incluso si el autor de este schema nunca declaró alguna propiedad "gender".
Vea este archivo de schema, llamado "attribute.xsd":
<?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.codew3c.com" xmlns="http://www.codew3c.com" elementFormDefault="qualified"> <xs:attribute name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:schema>
esta XML (llamado "Myfamily.xml"), utiliza componentes de diferentes schemas, "family.xsd" y "attribute.xsd":
<?xml version="1.0" encoding="ISO-8859-1"?> <persons xmlns="http://www.microsoft.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://www.microsoft.com family.xsd http://www.codew3c.com attribute.xsd"> <person gender="female"> <firstname>Jane</firstname> <lastname>Smith</lastname> </person> <person gender="male"> <firstname>David</firstname> <lastname>Smith</lastname> </person> </persons>
Este archivo XML es válido porque el esquema "family.xsd" nos permite agregar atributos al elemento "person".
Ambos <any> y <anyAttribute> se pueden usar para crear documentos extensibles. ¡Permiten que el documento pueda contener elementos adicionales no declarados en el esquema XML principal!
- Página anterior XSD <any>
- Página siguiente Reemplazo de elemento XSD