Perl для системного администрирования



              

XML требователен Несмотря на гибкость


Вот два правила XML, которые заставляют спотыкаться тех, кто знаком с HTML:

1. Все, что начато, должно быть закончено. В приведенном выше примере список для машины начинался с <inachi nc>, а завершался с использованием </machine>. Без закрывающего тега это был бы пример XML, содержащий ошибку.

В HTML такие теги, как <img src="picture. ]pg">, вполне могут не иметь закрывающего тега. Но в XML это неверно, поэтому его нужно переписать либо так:

<img src="picture.jpg"> </img>

либо так:

<img src="picture.jpg" />

Слэш в конце последнего тега сообщает XML-анализатору, что он является одновременно и открывающим, и закрывающим тегом. Данные и окружающие их открывающий и закрывающий теги называются элементом (element).

2. Открывающие и закрывающие теги должны в точности соответствовать друг другу. Нельзя изменять их регистр. Если используется открывающий тег <MaChINe>, то закрывающим должен быть </MaChINo -, но не </МАСН> и не тег с любой другой комбинацией регистров. В этом отношении HTML гораздо более снисходителен.

Это два основных правила из спецификации XML. Но иногда автор определяет собственные правила, которым должен подчиняться анализатор XML. Под «подчиняться» следует подразумевать «выдавать предупреждения» или «останавливать анализ» при чтении XML-данных.

Если использовать в качестве примера предыдущее определение машины в базе данных, то можно ввести дополнительное правило: «Все элементы <nac:ine> должны содержать элементы <папе> и <ipaco'"bss--». Можно также ограничить содержимое элемента определенными значениями, подобными «YES» или «NO».

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

для определения «языка». В конце концов, XML станет самоопределяемым (т. е. структуру документа будет описывать либо сам документ, либо нечто с ним связанное).




Содержание  Назад  Вперед