XML Schema/Primer
Deklaracja xsd:schema
[edytuj]<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Określa, że aktualny dokument XML zawiera deklaracje określające dozwolone typy.
Tag xsd:element
[edytuj]<xsd:element name="Nazwa Tagu" type="Typ danych" />
- atrybut name - określa nazwę tagu XML, którego właściwości opisujemy,
- atrybut type - określa typ zawartości tagu (Zobacz: Typy danych). Mogą to być typy wbudowane lub zdefiniowane przez tag xsd:complexType.
Tag xsd:complexType
[edytuj]<xsd:complexType name="Nazwa Typu"> <!-- deklaracje --> </xsd:complexType>
Wprowadza definicję własnego typu danych. Powinien posiadać następujące podtagi:
xsd:sequence
[edytuj]Zawiera podtag(-i) xsd:element określające jakie podtagi powinien zawierać tag XML, który opatrzyliśmy naszym typem.
<xsd:sequence>
<xsd:element name="imie" type="xsd:string"/>
<xsd:element name="ulica" type="xsd:string"/>
<xsd:element name="miasto" type="xsd:string"/>
<xsd:element name="wojewodztwo" type="xsd:string"/>
<xsd:element name="kod_pocztowy" type="xsd:decimal"/>
</xsd:sequence>
xsd:attribute
[edytuj]Określa jakie atrybuty może/powinien posiadać tag naszego typu. Atrybuty:
- name - określa nazwę atrybutu
- type - typ zawartości atrybutu
- fixed - wartość domyślna
- use - określa czy ten atrybut jest obowiązkowy (required), czy też nie
<xsd:attribute name="kraj" type="xsd:NMTOKEN" fixed="PL"/>
Podtag xsd:attribute może wystąpić wielokrotnie.
Przykład
[edytuj]Poniższa deklaracja:
<xsd:complexType name="Adres">
<xsd:sequence>
<xsd:element name="imie" type="xsd:string"/>
<xsd:element name="ulica" type="xsd:string"/>
<xsd:element name="miasto" type="xsd:string"/>
<xsd:element name="wojewodztwo" type="xsd:string"/>
<xsd:element name="kod_pocztowy" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="kraj" type="xsd:NMTOKEN" fixed="PL"/>
</xsd:complexType>
w połączeniu z <xsd:element name="czlonek" type="Adres"/> sprawi, że...
… poniższy dokument XML będzie uznany za prawidłowy: <czlonek kraj="PL">
<imie>Nieznajomy</imie>
<ulica>ul. Nieznana</ulica>
<miasto>Nigdziejów</miasto>
<wojewodztwo>MAŁO znane</wojewodztwo>
<kod_pocztowy>00000</kod_pocztowy>
</czlonek>
</nowiki>
</pre>
</td><td width="50%">
<span style="color:red;">… a ten za nieprawidłowy:</span><br>
<pre>
<nowiki>
<czlonek kraj="Polska"><!-- nieprawidłowy typ dla "kraj" -->
<!-- brak tagu "Imie" -->
<ulica>ul. Nieznana</ulica>
<miasto>Nigdziejów</miasto>
<!-- brak tagu "wojewodztwo: -->
<kod_pocztowy>5 zer</kod_pocztowy>
<!-- nieprawidłowa zawartość -->
</czlonek>
|