XML-краткая шпаргалка

XML-краткая шпаргалка


Общие положения

XML (Extensible Markup Language – расширяемый язык разметки) является инструментарием для хранения данных, конфигурируемым транспортным средством для информации любого рода, развивающимся и открытым стандартом.


XML предоставляет несколько способов проверки качества документа путем применения синтаксических правил, внутренней проверки ссылок, сравнения с моделями документов и типов данных.

Теги - основа элементов XML

Теги рекомендуется писать малыми латинскими буквами (регистрочувствительно), теги могут содержать атрибуты для уточнения их обработки: 

а) <Tag.name_my-2 attr1="value" attr2="none"/> тег без значения, с двумя атрибутами (пустой) заканчивается /, в именах допустимы ._- , но не символы - разделители (кавычки,:)

б) <tag attr1="value">Значение</tag> тег с атрибутом и значением

Структура документа (строго древовидная, один корневой тег):

1. Пролог документа


1.1. Объявление (по умолчанию разнится UTF-8 и ANSII. Все атрибуты, кроме версии, опциональны. Указывает процессору, какая версия спецификации и какая кодировка). 

XML <?xml version='1.0' encoding='US-ASCII' standalone='yes'?>

если указать standalone="yes", то все необходимое для форматирования документа находится во внутреннем подмножестве. По умолчанию атрибут опускается.

1.2. Объявление типа документа - 

<!DOCTYPE time-o-gram

PUBLIC "-//LordsOfTime//DTD TimeOGram 1.8//EN"

[

<!ENTITY sj "Sarah Jane">

<!ENTITY me "Doctor Who">

]>


2. Элементы документа

<team persons="sue joe jane">

<person>sue</person>

<person>joe</person>

<person>jane</person>

</team>

Зарезервированные теги:

xml:lang="en" означает, что содержимое - текст на английском языке. 

xml:space - должны ли пробельные символы сохраняться в содержимом элемента. Если ему присвоено значение preserve (при пропуске, по умолчанию) - учитывать, default - процессор может свободно обращаться с пробельными символами

xml:link - XLink, является элементом ссылки. 

xml:attribute - 

3. Пространства имен name spaces xmlns (позволяют избежать конфликта одних и тех же тегов), отделаются перед тегом двоеточием, имя в формате URL на самом деле просто идентификатор, путь никто не проверяет. Назначается в атрибуте xmlns (если при теге нет :, то назначается по умолчанию) :


<?xml version="1.0"?>

<journal xmlns="http://www.psycholabs.org/mynamespace/">

<experiment>

<date>March 4, 2001</date>

<subject>Effects of Caffeine on Psychokinetic Ability</subject>

<abstract>The experiment consists of a subject, a can of

caffeinated soda, and a goldfish tank. The ability to make a

goldfish turn in a circle through the power of a human's mental

control is given by the well-known equation:

<eq:formula xmlns:eq="http://www.mathstuff.org/">

<eq:variable>P</eq:variable> =

<eq:variable>m</eq:variable>

<eq:variable>M</eq:variable> /

<eq:variable>d</eq:variable>

</eq:formula>

where P is the probability it will turn in a given time interval,

m is the mental acuity of the fish, M is the mental acuity

of the subject, and d is the distance between

fish and subject.</myns:abstract>

</experiment>

</journal>


4. Пространства имен могут стать источником головной боли, если используются вместе с DTD, так как DTD yне различает пространств имен.

5. Замены в тексте для предопределенных символов:

< → &lt;

& → &amp;

> → &gt;

“ → &quot;

‘ → &apos;

 

6. Контроль - корректный (Well-Formed) означает, что соблюден синтаксис и структура, но не проверяется содержание тегов по схемам.


7. Сущности - подстановка значений во всем документе, определяются как &имя;, перед применением должны быть описаны выше:

Ниже приведен пример документа, в котором объявлены три общие

сущности, причем ссылки на них есть в тексте (также объявлен внешний файл DTD):

<?xml version="1.0"?>

<!DOCTYPE message SYSTEM "/xmlstuff/dtds/message.dtd"

[

<!ENTITY client "Mr. Rufus Xavier Sasperilla">

<!ENTITY agent "Ms. Sally Tashuns">

<!ENTITY phone "<number>617-55-299</number>">

]>

<message>

<opening>Dear &client;</opening>

<body>We have an exciting opportunity for you! A set of

ocean-front cliff dwellings in Mexico have been

renovated as time-share vacation homes. They're going fast! To

reserve a place for your holiday, call &agent; at &phone;.

Hurry, &client;. Time is running out!</body>

</message>

DTD проверки

8. DTD описание элементов, формат: <!ELEMENT имя (вложенные элементы или тип)>

<!ELEMENT article (title,author+,text)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT text (abstract,section*,literature?)>

<!ELEMENT abstract (#PCDATA)>

<!ELEMENT section (#PCDATA|index)+>

Допустимые значения (возможны комбинации типа <!ELEMENT f ((a|b)*,c+,(d|e))*>):

(#PCDATA) разбираемые текстовые данные

(child) один дочерний элемент

(c1,…,cn) несколько дочерних элементов

(c1|…|cn) один из перечисленных элементов

Доп.символы справа от элемента с:

c строго один такой элемент

c+ один или более

c* нуль или более

c? нуль или один


<!ELEMENT image EMPTY> пустой

<!ELEMENT thesis ANY> любой


9. DTD описания атрибутов элементов, формат

<!ATTLIST элемент атрибут1 тип #модификатор атрибут2 тип #модификатор> Пример:

<!ATTLIST section number CDATA #REQUIRED

title CDATA #REQUIRED>

Модификаторы:

• #REQUIRED обязательный

• #IMPLIED опциональный

• #FIXED default всегда имеет по умолчанию значение default


10. DTD-типы атрибутов

CDATA The value is character data

(eval|eval|..)The value must be an enumerated value

ID The value is an unique id

IDREF The value is the id of another element

IDREFS The value is a list of other ids

NMTOKEN The value is a valid XML name

NMTOKENS The value is a list of valid XML names

ENTITY The value is an entity

ENTITIES The value is a list of entities

NOTATION The value is a name of a notation

xml: The value is predefined

Пример построения ссылок через ID-IDREF


XSD-схемы

Altova XMLSpy - редактор для создания и редактирования XML/XSD в текстовом и графическом виде, валидации схем и файлов.

  1. Схема представляет собой XML, описанный согласно определенным правилам и определяющий валидность XML документов по составу, структуре, типам данных.

<?xml version="1.0" encoding="UTF-8"?>

<!-- edited with XML Spy v5 beta 4 U (http://www.xmlspy.com) by Robert Gillis (Altova, Inc.) -->

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

<xs:element name="main">

<xs:annotation>

<xs:documentation>Comment describing your root element</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="dictionaries"/>

<xs:element ref="idref"/>

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

<xs:element ref="content"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="sitedata"/>

<xs:element name="navigation">

<xs:complexType>

<xs:sequence>

<xs:element name="base_url" type="xs:string"/>

<xs:element minOccurs="0" ref="menu"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>


Report Page