XML - Schemas



XML-Schema wird allgemein als XML Schema Definition (XSD) bekannt.Es wird verwendet, um zu beschreiben, und validieren die Struktur und die Inhalte der XML-Daten. XML-Schema definiert die Elemente, Attribute und Datentypen. Schema-Element unterstützt Namespaces. Es ist ähnlich wie ein Datenbankschema, das die Daten in einer Datenbank beschreiben.

Syntax

Sie brauchen, um ein Schema in Ihrem XML-Dokument wie folgt deklarieren:


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Beispiel

Das folgende Beispiel zeigt, wie Schema verwenden:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="name" type="xs:string" />
            <xs:element name="company" type="xs:string" />
            <xs:element name="phone" type="xs:int" />
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Die Grundidee hinter XML-Schemas ist, dass sie beschreiben die rechtmäßige Format, das ein XML-Dokument kann übernehmen .

Elemente

Wie wir in der Säge XML - Elemente Kapitel-Elemente sind die Bausteine ​​von XML-Dokument. Ein Element kann definiert innerhalb XSD wie folgt werden:

<xs:element name="x" type="y"/>

Definition Typen

Sie können XML-Schema-Elemente in folgende Arten definieren:

einfacheTypen - Einfache Art Element nur im Zusammenhang mit dem Text verwendet. Einige der vordefinierten einfachen Typen sind : xs : integer, xs : boolean, xs : string, xs : date. Beispielsweise:

<xs:element name="phone_number" type="xs:int" />

komplexen Typ - Ein komplexer Typ ist ein Container für andere Elementdefinitionen. Diese erlauben können Sie festlegen, welche Kind-Element Elemente ein enthalten kann und eine gewisse Struktur in Ihre XML-Dokumente bieten. Beispielsweise:

<xs:element name="Address">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="name" type="xs:string" />
	    <xs:element name="company" type="xs:string" />
            <xs:element name="phone" type="xs:int" /> 
        </xs:sequence> 
    </xs:complexType>
</xs:element> 

Im obigen Beispiel, Adresse Element besteht aus kind Elemente. Dies ist ein Container für andere <xs:element> Definitionen, dass ermöglicht, eine einfache Hierarchie von Elementen in dem XML-Dokument zu erstellen.

Globale Typen - Mit der globalen Typ können Sie eine einzige Art in Ihrem Dokument, die von allen anderen Referenzen verwendet werden können, zu definieren. beispielsweise ,Angenommen, Sie wollen die verallgemeinern die person und Unternehmen für die verschiedenen Adressen der Firma. In einem solchen Fall können definiert Sie eine allgemeine Art, wie unten:

<xs:element name="AddressType">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="name" type="xs:string" />
	    <xs:element name="company" type="xs:string" />
        </xs:sequence> 
    </xs:complexType>
</xs:element> 

Nun wollen wir diese Art verwenden in unserem Beispiel wie folgt:

<xs:element name="Address1">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="address" type="AddressType" />
	    <xs:element name="phone1" type="xs:int" /> 
        </xs:sequence> 
    </xs:complexType>
</xs:element> 
<xs:element name="Address2">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="address" type="AddressType" />
	    <xs:element name="phone2" type="xs:int" /> 
        </xs:sequence> 
    </xs:complexType>
</xs:element> 

Anstatt sich haben zu definieren den Namen und die Firma zweimal (einmal für Address1 und einmal für Address2), wir haben jetzt eine einheitliche Definition. Das macht die Wartung einfacher, dh, wenn Sie sich entscheiden, "Postleitzahl" Elemente, die Adresse, um sie nur an einer Stelle hinzufügen, müssen Sie.

Attributes

Attribute in XSD bieten zusätzliche Informationen in einem Element. Attribute haben name und typen Eigenschaft wie folgt:

<xs:attribute name="x" type="y"/>
Advertisements