Element <any> XSD
- Poprzednia Strona Indykatory XSD
- Następna Strona XSD <anyAttribute>
Element <any> daje nam możliwość rozszerzenia dokumentu XML za pomocą elementów niezdefiniowanych w schema!
Element <any>
Element <any> daje nam możliwość rozszerzenia dokumentu XML za pomocą elementów niezdefiniowanych w schema!
Poniższy przykład pochodzi z fragmentu XML schema o nazwie "family.xsd". Wyświetla on deklarację elementu "person". Dzięki użyciu elementu <any> możemy rozszerzyć zawartość "person" za pomocą jakiegokolwiek elementu (po <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>
Chcemy teraz użyć elementu "children" do rozszerzenia elementu "person". W tym przypadku możemy to zrobić, nawet jeśli autor tego schematu nie zadeklarował żadnego elementu "children".
Proszę spojrzeć na ten plik schematu, o nazwie "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>
Poniżej znajduje się plik XML (o nazwie "Myfamily.xml"), który używa składników z dwóch różnych schematów, "family.xsd" i "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>
Powyższy plik XML jest poprawny, ponieważ schema "family.xsd" pozwala nam na rozszerzenie elementu "person" za pomocą opcjonalnego elementu po elementie "lastname".
<any> i <anyAttribute> mogą być używane do tworzenia dokumentów rozszerzalnych! Pozwalają na zawarcie dodatkowych elementów, które nie zostały zadeklarowane w głównym Schemacie XML.
- Poprzednia Strona Indykatory XSD
- Następna Strona XSD <anyAttribute>