XSD Phần tử <anyAttribution>
Phần tử <anyAttribution> cho phép chúng ta mở rộng tài liệu XML với các thuộc tính không được lược đồ chỉ định!
Phần tử <anyAttribution>
Phần tử <anyAttribution> cho phép chúng tôi mở rộng tài liệu XML với các thuộc tính không được lược đồ chỉ định.
Ví dụ sau đây là một đoạn từ lược đồ XML có tên là "family.xsd". Nó hiển thị một khai báo cho phần tử "người". Bằng cách sử dụng phần tử <anyAttribution>, chúng ta có thể thêm bất kỳ số lượng thuộc tính nào vào phần tử "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>
Bây giờ chúng tôi muốn mở rộng thành phần "người" bằng thuộc tính "màu mắt". Trong trường hợp này, chúng ta có thể làm như vậy, ngay cả khi tác giả của lược đồ trên chưa bao giờ khai báo bất kỳ thuộc tính "eyecolor" nào.
Hãy xem tệp lược đồ này, được gọi là "attribute.xsd":
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="https://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.example.com.vn"
xmlns="https://www.example.com.vn"
elementFormDefault="qualified">
<xs:attribute name="eyecolor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="blue|brown|green|grey"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
Tệp XML bên dưới (được gọi là "Myfamily.xml"), sử dụng các thành phần từ hai lược đồ khác nhau; "family.xsd" và "attribute.xsd":
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns="https://www.microsoft.com"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="https://www.microsoft.com family.xsd
https://www.example.com.vn attribute.xsd">
<person eyecolor="green">
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
</person>
<person eyecolor="blue">
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
Tệp XML ở trên hợp lệ vì lược đồ "family.xsd" cho phép chúng ta thêm thuộc tính vào phần tử "person".
Các phần tử <any> và <anyAttribution> được sử dụng để tạo các tài liệu MỞ RỘNG! Chúng cho phép tài liệu chứa các phần tử bổ sung không được khai báo trong lược đồ XML chính.