Schemat XML
XSD (XML Schema Definition) to język schematu używany do opisu struktury i ograniczeń treści dokumentów XML w bardzo precyzyjny sposób, wykraczający poza reguły składniowe narzucone przez sam język XML . W ten sposób uzyskuje się percepcję typu dokumentu na wysokim poziomie abstrakcji. Został opracowany przez World Wide Web Consortium (W3C) i osiągnął poziom rekomendacji w maju 2001 roku.
Terminologia
Termin „Schemat XML” jest używany w różnych znaczeniach w tym samym kontekście opisu dokumentu i należy wziąć pod uwagę następujące kwestie:
- „Schemat XML” to oficjalna nazwa nadana rekomendacji W3C, która stworzyła pierwszy język schematów oddzielony od XML (definicja typu dokumentu ( DTD ) jest częścią XML).
- Powszechnie nazywa się schematy ogólnie „schematem XML”, ale zaleca się używanie terminu „ dokument schematu ” lub „ definicja schematu ” i zarezerwowanie „Schematu XML” dla nazewnictwa tego konkretnego języka.
- Chociaż „schematy XML” są używane ogólnie, XSDL ( XML Schema Definition Language ) to techniczna nazwa języków schematów XML, takich jak:
- Definicja typu dokumentu (DTD)
- Schemat XML
- RELAKS NG
- Schematron
- Język routingu przestrzeni nazw (NRL)
- Języki definicji schematu dokumentów (DSDL)
- Język znaczników definicji dokumentu (DDML)
- Opis struktury dokumentu (DSD)
- SGML
- Schemat dla XML zorientowanego obiektowo (SOX)
XML schematu W3C
Konsorcjum World Wide Web (W3C) rozpoczęło prace nad schematem XML w 1998 roku. Pierwsza wersja stała się oficjalną rekomendacją w maju 2001 roku. Poprawione drugie wydanie jest dostępne od października 2004 roku.
To zalecenie składa się z trzech części:
- XML Schema Part 0 Primer - jest nienormatywnym wprowadzeniem do języka, dostarczającym wielu przykładów i szczegółowych wyjaśnień pierwszego podejścia do XML Schema.
- XML Schema Part 1 Structures : to obszerny opis komponentów języka.
- XML Schema Part 2 Datatypes – Uzupełnia część 1 o definicję wbudowanych typów danych XML Schema i ich ograniczeń.
(patrz Linki zewnętrzne )
Komponenty
XML Schema to język schematów napisany w XML , oparty na gramatyce i mający na celu zapewnienie większej mocy wyrazu niż DTD , które są mniej zdolne do opisywania dokumentów na poziomie formalnym.
Dokumenty schematu (zwykle z rozszerzeniem XML Schema Definition (XSD) .xsd) zostały pomyślane jako alternatywa dla bardziej złożonych DTD, próbując przezwyciężyć ich słabości i szukać nowych możliwości podczas definiowania struktur dokumentów XML. Głównym wkładem XML Schema jest duża liczba typów danych , które zawiera. W ten sposób XML Schema zwiększa możliwości i funkcjonalności aplikacji przetwarzających dane, w tym złożone typy danych, takie jak daty, liczby i ciągi.
Typy komponentów
Schematy XML Schema przezwyciężają wiele ograniczeń i słabości DTD. Został zaprojektowany całkowicie wokół przestrzeni nazw i obsługuje typowe typy danych języka programowania , a także proste i złożone typy niestandardowe. Schemat jest definiowany z myślą o jego końcowym zastosowaniu.
Przestrzenie nazw
Programowanie schematów XML opiera się na przestrzeniach nazw lub przestrzeniach nazw , między którymi możemy znaleźć analogię do tzw. pakietów w Javie . Każda przestrzeń nazw zawiera elementy i atrybuty, które są ściśle związane z przestrzenią nazw. Dlatego podczas definiowania elementu lub atrybutu przestrzeni nazw zawsze zostanie utworzone połączenie między jego różnymi polami. Ponadto ten sposób pracy pozwala nam powiązać elementy, które nie znajdują się w tej samej przestrzeni nazw.
Po napisaniu schematu XML możesz potwierdzić jego poprawność za pomocą walidacji schematu XML: walidacja XML .5623
Przykład
Przykładowa struktura pustego dokumentu schematu byłaby następująca:
<?xml version="1.0" kodowanie="ISO-8859-1"?>
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema" version= "0.1" xml:lang = "jest" >
</xsd:schema>
Przykład definicji z XML Schema byłby następujący:
<?xml version="1.0" kodowanie="UTF-8"?>
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema" >
<xsd:element name= "Książka" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name= "Tytuł" type= "xsd:string" />
<xsd:element name= "Autorzy" type= "xsd:string" maxOccurs= "10" />
<xsd:element name= "Wydawca" type= "xsd:string" />
</xsd:sequence>
<xsd:attribute name= "cena" type= "xsd:double" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Możemy zobaczyć, jak w obu przypadkach rozpoczynają się deklaracje wskazujące wersję XML , która ma być użyta, i używane kodowanie . Te dwa pola są niezbędne do interpretacji schematu.
Poniższy wiersz kodu deklaruje element schematu , katalog główny dokumentu definicji schematu. Dodatkowo deklarowana jest przestrzeń nazw , w której deklarowane są nazwy elementów dokumentu live . Ta definicja schematu nakazuje, że każdy zgodny z nią dokument XML musi mieć element główny o nazwie „Książka”, który będzie miał trzy elementy podrzędne (elementy zagnieżdżone) i jeden atrybut. Dzieci to „Tytuł”, „Wydawca”, który musi pojawić się raz i „Autorzy”, który może pojawić się od jednego do dziesięciu razy. Fakt, że są pogrupowane w kolejności, wskazuje, że elementy muszą pojawiać się w kolejności, czyli najpierw „Tytuł”, potem „Autorzy”, a na końcu „Wydawca”. Wszystkie trzy elementy są typu string . Atrybut książki nosi nazwę „cena” i jest typu double .
Zobacz także
Poradniki
- Samouczek online z przykładami (w języku angielskim)
- Samouczek XSD dla początkujących — teoria, przykłady i ćwiczenia rozwiązane na licencji Creative Commons.
- Wyjaśnienie i użycie przestrzeni nazw
- Walidacja schematu XML