Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

Обнаженная теория об XML.

DarkSergeant

Спецвыпуск Xakep, номер #028, стр. 028-056-2


Если ты уже писал на HTML-е, то для тебя все эти понятия будут уже знакомы. Замечу только, что синтаксис языка XML более строгий, чем у HTML.

Так в XML-е, каждый открывающий тег должен быть закрыт, также недопустимы перекрестные теги - <User> <Name> Вася </User> </Name> - так нельзя.

XSD – Определение схемы XML-документа

Для того чтобы не потонуть в ворохе разнообразнейших элементов разнообразнейших документов на языке Xml, было введено понятие схемы. Допустим, нам срочно захотелось описать на языке XML векторную картинку, то надо просто залезть в инет и надыбать схему, в которой написано как должен формироваться наш документ. В данной схеме задано название корневого элемента, заданы названия элементов, которые определяют графические примитивы, а также задано, какие элементы в какие элементы можно вставлять.

Возьмем простенький XSD-файл и посмотрим, что в нем написано.

//корневой элемент схемы, в атрибутах видны ссылки на схемы, в которых написано, какая должна быть структура у схемы. Что-нибудь понял? :) Если нет, то не страшно. Надо просто запомнить, что так надо писать, и все.

<xs:schema id="Logins" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

//эта строчка говорит, что в нашем документе главным тегом будет являться Logins.

<xs:element name="Logins">

//Logins является сложным типом. Сложный тип – это все, что не число, строка и т.д.

<xs:complexType>

//choice говорит, что Logins является списком, unbounded говорит, что в списке может быть неограниченное кол-во элементов

<xs:choice maxOccurs="unbounded">

//Список Logins содержит элемент Login

<xs:element name="Login">

//Login является сложным типом

<xs:complexType>

//Login является записью/структурой/последовательностью элементов

<xs:sequence>

//У Login-а есть поле Name типа строка, это поле оформлено как элемент, minOccurs=”0” означает, что у Login-а данного поля может и не быть.

<xs:element name="Name" type="xs:string" minOccurs="0" />

//Остальные поля определяются аналогично полю Name

<xs:element name="Password" type="xs:string" minOccurs="0" />

<xs:element name="FullName" type="xs:string" minOccurs="0" />

<xs:element name="Nick" type="xs:string" minOccurs="0" />

<xs:element name="e-mail" type="xs:string" minOccurs="0" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

</xs:element>

</xs:schema>

XPath – XML-ный путь

Для указания, а также выборки каких-либо данных (элементов) из XML-документа была придумана такая фишка, как XPath. XPath с одной стороны напоминает обычный файловый путь, с другой – похож на SQL (я надеюсь, что ты хотя бы поверхностно знаешь что это такое).

Назад на стр. 028-056-1  Содержание  Вперед на стр. 028-056-3