XML

Что такое XML

XML – это расширяемый язык разметок.

Аббревиатура XML означает extensible markup language.

XML не определяет теги, а позволяет нам создавать собственные теги.

Мы создаем теги, с их помощью документ XML, а чтоб можно было понять наши теги, даем их описание.

Таков общий принцип.

Ниже рассмотрим работу с XML подробнее.

Пример документа XML

В Блокноте набираем код:

Первая строка

< ?xml version=”1.0” encoding=”Windows-1251”? >

это объявление XML, кодировка русская.

Вторая строка

< !DOCTYPE knigi SYSTEM “Libreria.dtd” >

это тип документа. Слово «knigi» – это имя документа и имя корневого элемента документа. После слова SYSTEM идёт ссылка на файл Libreria.dtd, в котором описаны теги нашего документа XML.

Строка

< kni:knigi xmlns:kni = “http://sbp-program.ru/index.htm” >

содержит тег «knigi» и объявляет пространство имен «kni» с помощью атрибута «xmlns».

В документе мы используем теги:
  knigi – это корневой тег, все другие теги должны быть вложены в корневой тег;
  title – наименование книги;
  author – автор книги;
  year – год издания,
все они относятся к пространству имен «kni».

Теги бывают открывающие, пример: < kni:author > и закрывающие, пример: < /kni:author >. Открывающие теги могут содержать атрибуты. Например тег <kni:author> можно снабдить атрибутами:

< kni:author kni:family=”Иванов” kni:name=”Иван” kni:patronymic=”Иванович” >

Перепишем наш XML-документ с учетом изменения тега < kni:author > :

Теги могут быть вложенными. Введем новый тег < kni:kniga > и в него вложим теги, соответствующие одной книге:

В XML документы можно вводить комментарии следующим образом.

Добавим комментарии в наш документ:

DTD

Опишим теги нашего документа на языке DTD:

Набираем этот код в Блокноте и сохраняем как Libreria.dtd.

Строка

< !ELEMENT knigi (kniga)* >

объявляет корневой элемент. В корнеом элементе имеется вложенный элемент (kniga)*, звездочка говорит, что вложенный элемент может встречаться многократно или не встретиться ни разу. В элемент kniga вложены другие элементы, их объявим при объявлении самого элемента kniga, т.е. в объявлении элемента указываем только непосредственно в него вложенные элементы.

Элемент kniga содержит три вложенных элемента, их указывем в скобках:

< !ELEMENT kniga (title, author, year) >

В строке

< !ELEMENT title (#PCDATA) >

объявлен элемент title, содержащий строку, и без вложенных элементов. (#PCDATA) обозначает, что значением элемента является строка.

В строке

< !ELEMENT author EMPTY >

объявлен пустой элемент, т.е. он сам определенного значения не имеет. Но у него есть атрибуты, которые и объявляются ниже:

каждый из атрибутов является строкой ( CDATA) и наличие значения атрибута обязательно (#REQUIRED).