Элемент <anyAttribute> XSD
- Предыдущая страница XSD <any>
- Следующая страница Заменители элементов XSD
Элемент <anyAttribute> позволяет расширять XML документ через атрибуты, не规定的 схемой!
Элемент <anyAttribute>
Элемент <anyAttribute> позволяет расширять XML документ через атрибуты, не规定的 схемой!
Этот пример является фрагментом XML схемы,名为 "family.xsd". Он показывает声明 для элемента "person". Используя элемент <anyAttribute>, мы можем добавить неограниченное количество атрибутов к элементу "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>
Теперь мы хотим расширить элемент "person" через атрибут "gender". В этом случае мы можем сделать это, даже если автор схемы никогда не объявлял никакого атрибута "gender".
Пожалуйста, посмотрите на этот файл схемы, названный "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>
Ниже приведен этот XML (названный "Myfamily.xml"), который использует компоненты из различных схем, "family.xsd" и "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>
Этот XML файл является действительным, потому что schema "family.xsd" позволяет нам добавить атрибуты к элементу "person".
Элементы <any> и <anyAttribute>均可用于 создание расширяемых документов! Они позволяют документу включать дополнительные элементы, не заявленные в основном XML schema.
- Предыдущая страница XSD <any>
- Следующая страница Заменители элементов XSD