XSD Phần tử <any>
Phần tử <any> cho phép chúng ta mở rộng tài liệu XML với các phần tử không được lược đồ chỉ định!
Phần tử <any>
Phần tử <any> cho phép chúng ta mở rộng tài liệu XML với các phần tử 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ử <any>, chúng ta có thể mở rộng (sau <lastname>) nội dung của "người" với bất kỳ phần tử nào:
<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>
Bây giờ chúng tôi muốn mở rộng phần tử "người" bằng phần tử "trẻ em". 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ỳ phần tử "con" nào.
Hãy xem tệp lược đồ này, có tên là "children.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:element name="children">
<xs:complexType>
<xs:sequence>
<xs:element name="childname" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</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à "children.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 children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<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 mở rộng phần tử "person" bằng một phần tử tùy chọn sau phần tử "lastname".
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.