Pliki .XSD (XML Schemat) są szablonem i de facto instrukcją do tworzenia plików .XML, a te są właściwymi plikami do przenoszenia informacji. Jak zatem czytać plik .XSD, aby przygotować plik .XML i ten wypełnić danymi?
Pliki .XSD powszechnie mają dość skomplikowaną strukturę, a do ich przeglądania i edycji służą mniej lub bardziej skomplikowane edytory. Żeby jednak zrozumieć istotę obu dokumentów spróbujemy „ręcznie” i „naocznie” powiązać oba dokumenty.
Rozpatrzmy przykład prostego schematu:
<?xml version=”1.0″?>
<xsd:schema>
<xsd:element name=”DOKUMENT„>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”wstep” type=”xsd:string”/>
<xsd:element name=”rozwiniecie” type=”xsd:string”/>
<xsd:element name=”zakonczenie” type=”xsd:string”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Jak widać dokument .XSD otwiera deklaracja <?xml version=”1.0″?> i nic dziwnego, bo jak wiadomo z poprzedniego wpisu .XSD jest pisane w języku .XML. W drugim wierszu występuje znacznik <schema> obowiązkowy dla pliku .XSD. On też zamyka dokument XML Schema. Znacznik xsd wyznacza przestrzeń nazw dla schematu – w schematach stosuje się też xs.
W kolejnym wierszu mamy obiekt – element o nazwie DOKUMENT, który jest elementem złożonym, złożoność ta zaczyna się znacznikiem <xsd:complexType> a kończy </xsd:complexType> i składa się z trzech obiektów elementów: wstep, rozwiniecie, zakończenie. Każdy z tych elementów jest typu string, czyli może zawierać tylko tekst. Znaczniki <xsd:sequence> i </xsd:sequence> oznaczają, iż elementy występujące pomiędzy tymi znacznikami muszą występować w określonej i stałej kolejności.
Jak zatem utworzyć plik .XML?
Zaczynamy od otwarcia pierwszego elementu DOKUMENT:
<?xml version=”1.0″?>
<DOKUMENT>
…
</DOKUMENT>
i jego zamknięcia, bo każdy element złożony musi być zamknięty.
Potem definiujemy, to co składa się na DOKUMENT:
<?xml version=”1.0″?>
<DOKUMENT>
<wstep></wstep>
<rozwiniecie></rozwiniecie>
<zakonczenie></zakonczenie>
</DOKUMENT>
… i wypełniamy danymi:
<?xml version=”1.0″?>
<DOKUMENT>
<wstep>Treść wstępu</wstep>
<rozwiniecie>Treść rozwinięcia</rozwiniecie>
<zakonczenie>Treść zakończenia</zakonczenie>
</DOKUMENT>
Proste?