Latest web development tutorials

elemento de esquema XML anyAttribute

<AnyAttribute> elemento nos permite ampliar el documento XML propiedades no son especificados por el esquema!


<AnyAttribute> elemento nos permite ampliar el documento XML propiedades no son especificados por el esquema!

El siguiente ejemplo es un fragmento del esquema XML denominado "family.xsd" de. Nos muestra una declaración contra el elemento de "persona". Al utilizar el elemento <anyAttribute>, podemos añadir cualquier número de atributos para el elemento "persona":

<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 que a través del "género" atributo para extender el elemento de "persona". En este caso, podemos hacerlo, incluso si el autor del esquema anterior no declaró ningún atributo "género".

Mira este archivo de esquema llamado "attribute.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.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>

La siguiente XML (llamado "Myfamily.xml"), el uso de ingredientes de diferente del esquema, "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.w3schools.com attribute.xsd">

<person gender="female">
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
</person>

<person gender="male">
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>

</persons>

Este archivo XML anterior es válida porque el esquema "family.xsd" nos permite añadir atributos al elemento de "persona".

<Cualquier> y <anyAttribute> puede ser utilizada para crear el documento escalable! Ellos tienen la capacidad de hacer que el documento no contenía una declaración del esquema XML principal a través de elementos adicionales.