Elemento <any> de XSD
- Página anterior Indicador XSD
- Página siguiente XSD <anyAttribute>
El elemento <any> nos permite expandir el documento XML mediante elementos no especificados por el esquema!
El elemento <any>
El elemento <any> nos permite expandir el documento XML mediante elementos no especificados por el esquema!
Este ejemplo es una fragmentación de un esquema XML llamado "family.xsd" que se muestra aquí. Muestra una declaración para el elemento "person" a través del uso del elemento <any>, lo que nos permite expandir el contenido de "person" mediante cualquier elemento (después de <lastname>):
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:any minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>
Ahora, queremos usar el elemento "children" para expandir el elemento "person". En este caso, podemos hacerlo incluso si el autor de este esquema no ha declarado ningún elemento "children".
Vea este archivo de esquema, denominado "children.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:element name="children"> <xs:complexType> <xs:sequence> <xs:element name="childname" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Este archivo XML inferior (denominado "Myfamily.xml") utiliza componentes de dos esquemas diferentes, "family.xsd" y "children.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 children.xsd"> <person> <firstname>David</firstname> <lastname>Smith</lastname> <children> <childname>mike</childname> </children> </person> <person> <firstname>Tony</firstname> <lastname>Smith</lastname> </person> </persons>
Este archivo XML superior es válido, ya que el esquema "family.xsd" nos permite expandir el elemento "person" a través de elementos opcionales posteriores al elemento "lastname".
Ambos <any> y <anyAttribute> se pueden usar para crear documentos expandibles. ¡Elllos permiten que el documento contenga elementos adicionales no declarados en el esquema XML principal!
- Página anterior Indicador XSD
- Página siguiente XSD <anyAttribute>