Jaka jest różnica między Extensible Markup Language (XML) a XML Schema (XSD)?
Jaka jest różnica między Extensible Markup Language (XML) a XML Schema (XSD)?
Odpowiedzi:
Właściwie XSD to sam XML. Jego celem jest sprawdzenie struktury innego dokumentu XML. XSD nie jest obowiązkowe dla żadnego XML, ale zapewnia, że XML może być używany do określonych celów. XML zawiera tylko dane w odpowiednim formacie i strukturze.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
ale skończyło się na wyświetleniu błędu: Error!!! The 'minOccurs' attribute cannot be present.
Brać przykład
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
i zaprojektuj w tym celu xsd:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="child_one" type="xs:string" />
<xs:element name="child_two" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Co nie jest możliwe w przypadku XSD: chciałbym go najpierw zapisać, ponieważ lista jest bardzo mała
1) Nie można sprawdzić poprawności węzła / atrybutu przy użyciu wartości innego węzła / atrybutu.
2) To jest ograniczenie: element zdefiniowany w pliku XSD musi mieć tylko jeden typ danych. [w powyższym przykładzie, aby <child_two>
pojawić się w innym <parent>
węźle, typ danych nie może być zdefiniowany inaczej niż int.
3) Nie możesz zignorować walidacji elementów i atrybutów, tj. Jeśli element / atrybut pojawia się w XML, musi być dobrze zdefiniowany w odpowiednim pliku XSD. Chociaż użycie na <xsd:any>
to pozwala, ale ma swoje własne zasady. Nieprzestrzeganie, które prowadzi do błędu walidacji. Próbowałem zastosować podobne podejście i na pewno się nie udało, oto pytania i odpowiedzi
co jest możliwe z XSD:
1) Możesz przetestować właściwą hierarchię węzłów XML. [xsd określa, które dziecko powinno podlegać któremu rodzicowi itp., co będzie liczone jako błąd, w powyższym przykładzie child_two nie może być bezpośrednim dzieckiem roota, ale jest to element potomny tagu "parent", który z kolei jest dziecko węzła "root", istnieje hierarchia ..]
2) Można zdefiniować typ danych wartości węzłów. [w powyższym przykładzie child_two nie może mieć żadnych innych danych niż liczba]
3) Możesz również zdefiniować własne typy danych, [na przykład dla węzła <month>
, możliwe dane mogą być jednym z 12 miesięcy .. więc musisz zdefiniować wszystkie 12 miesięcy w nowym typie danych, zapisując wszystkie 12-miesięczne nazwy jako wartości wyliczenia.
4) Możesz nałożyć ograniczenie na występowanie elementów, używając minOccurs i maxOccurs, wartości domyślne to 1 i 1.
.. i wiele więcej ...
<root> <A>A</A> <B/> <C/> </root>
a jeśli Node <A>
to <A>B</A>
, ustaw jako <B>
obowiązkowe, <A>C</A>
a jeśli to zrób <C>
obowiązkowe.
XSD:
XSD (XML Schema Definition) określa, jak formalnie opisywać elementy w dokumencie Extensible Markup Language (XML).
XML:
XML został zaprojektowany do opisu danych i jest niezależny od oprogramowania i sprzętu.
Poprawia następujące rzeczy.
-Udostępnianie danych.
-Niezależne od platformy.
-Zwiększenie dostępności danych.
Różnice:
XSD jest oparty i napisany w języku XML.
XSD definiuje elementy i struktury, które mogą pojawić się w dokumencie, podczas gdy XML nie.
XSD zapewnia, że dane są poprawnie interpretowane, podczas gdy XML nie.
Dokument XSD jest weryfikowany jako XML, ale nie zawsze może być odwrotnie.
XSD lepiej wychwytuje błędy niż XML.
XSD definiuje elementy, które można wykorzystać w dokumentach, odnoszące się do faktycznych danych, którymi ma być zakodowany.
na przykład:
Data wyrażona jako 12.01.2010 może oznaczać 12 stycznia lub 1 grudnia. Zadeklarowanie typu danych daty w dokumencie XSD zapewnia, że jest on zgodny z formatem narzuconym przez XSD.
XML definiuje składnię z elementów i atrybutów danych strukturyzacji w dobrze utworzonego dokumentu.
XSD (XML Schema aka) , jak DTD przed uprawnienia e X tensibility w formacie XML , umożliwiając użytkownikowi zdefiniować słownictwa i gramatyki z elementów i atrybutów w prawidłowy XML dokumentu.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Tutaj:
xs: element : definiuje element.
xs: sequence : oznacza, że elementy podrzędne pojawiają się tylko w podanej kolejności.
xs: complexType : oznacza, że zawiera inne elementy.
xs: simpleType : Oznacza, że nie zawierają innych elementów.
typ: string, decimal, integer, boolean, date, time,
Za pomocą dodatkowych atrybutów możemy wykonać wiele operacji.
Wykonywanie dowolnego zadania na xsd jest prostsze niż xml.
XML ma znacznie szersze zastosowanie niż np. HTML. Nie ma wewnętrznej ani domyślnej „aplikacji”. Tak więc, chociaż możesz nie przejmować się tym, że strony internetowe są również regulowane przez to, co jest dozwolone, ze strony autora prawdopodobnie będziesz chciał precyzyjnie zdefiniować, co dokument XML może, a czego nie może zawierać.
To jak projektowanie bazy danych.
W technologiach XML chodzi o to, że mają one charakter tekstowy. Dzięki XSD oznacza to, że masz strukturę definicji struktury danych, którą można „podłączyć” do narzędzi przetwarzania tekstu, takich jak PHP. Dzięki temu możesz nie tylko manipulować danymi, ale także bardzo łatwo zmieniać i dokumentować strukturę, a nawet automatycznie generować interfejsy.
Patrząc w ten sposób, XSD jest „klejem” lub „oprogramowaniem pośrednim” między danymi (XML) a narzędziami do ich przetwarzania.