XML - Схимы



Схима XML обыкновенно как определение схимы XML (XSD). Она использована для того чтобы описать и утвердить структуру и содержание данных по XML. Схима XML определяет элементы, атрибуты и типы данных. Элемент схимы поддерживает пространства имен. Он подобен к схиме базы данных которая описывает данные в базе данных.

Синтаксис

Вам нужно объявить схиму в вашем документе XML следующим образом:


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

Пример

Следующие выставки примера как использовать схиму:

<?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>

Основная мысль за схимами XML что они описывают правомерный формат который документ XML может принять.

Элементы

По мере того как мы увидели в XML - элементы глава, элементы строительные блоки документа XML. Элемент можно определить в пределах XSD следующим образом:

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

Типы определения

Вы можете определить элементы схимы XML в следующих путях:

Простой тип - простой тип элемент использован только в контексте текста. Некоторые из предопределенных простых типов являются следующими: xs: интежер, xs: булевско, xs: строка, xs: дата. Например:

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

Сложный тип - сложный тип контейнер для других определений элемента. Это позволяет вам определить которому ребенку элементы элемент могут содержать и обеспечивать некоторую структуру внутри ваши документы XML. Например:

<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> 

В вышеуказанном примере, элемент адреса состоит из элементов ребенка. Это контейнер для других <xs: определения element>, то позволяют построить простую иерархию элементов в документе XML.

Глобальные типы - с глобальный типом, вы можете определить одиночную печатаете внутри ваш документ на машинке, могущие понадобиться всеми другими справками. Например, предположите что вы хочет обобщить персону и компанию для различных адресов компании. В такой случай, вы можете определить общий тип как ниже:

<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> 

Теперь препятствуйте нам использовать это напечатайте внутри наш пример на машинке как ниже:

<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> 

Вместо определять имя и компанию дважды (раз для Address1 и раз для Address2), мы теперь имеем одиночное определение. Это делает обслуживание более простым, т.е., если вы решаете добавить элементы «почтового индекса» к адресу, то вам нужно добавить их на как раз одном месте.

Атрибуты

Атрибуты в XSD обеспечивают экстренную информацию внутри элемент. Атрибуты имеют имя и тип свойство как показан ниже:

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