Правила синтаксиса XML

Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.

У XML документа должен быть корневой элемент

XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.

<корневой>
   <потомок>
      <подпотомок>.....</подпотомок>
   </потомок>
</корневой>

В следующем примере корневым является элемент <note>:

<?xml version="1.0" encoding="UTF-8"?>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Напоминание</heading>
   <body>Не забудь обо мне в эти выходные!</body>
</note>

XML пролог

Следующая строка называется XML прологом:

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

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

В XML документе могут присутствовать международные символы, вроде русских букв, и чтобы не возникало ошибок необходимо указать кодировку, либо сохранить XML файл в формате UTF-8.

UTF-8 — кодировка XML документов по умолчанию.

UTF-8 также является кодировкой по умолчанию для HTML5, CSS, JavaScript, PHP и SQL.

Все XML элементы должны иметь закрывающий тег

В HTML некоторые элементы могут не иметь закрывающего тега:

<p>Это параграф.
<br>

В XML нельзя опускать закрывающий тег. Абсолютно все элементы должны закрываться:

<p>Это параграф.</p>
<br>

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

Теги XML регистрозависимы

Теги XML являются регистрозависимыми. Так, тег <Letter> не то же самое, что тег <letter>.

Открывающий и закрывающий теги должны определяться в одном регистре:

<Message>Это неправильно</message>
<message>Это правильно</message>

«Открывающий и закрывающий теги» иногда еще называют «начальный и конечный теги». Используйте то определение, которое вам более симпатично. По сути это одно и то же.

XML элементы должны соблюдать корректную вложенность

В HTML иногда можно наблюдать такую картину:

<b><i>Это жирный и курсивный текст</b></i>

и иногда это даже работает должным образом.

В XML все элементы обязаны соблюдать корректную вложенность:

<b><i>Это жирный и курсивный текст</i></b>

Понятие «корректная вложенность» по отношению к приведенным примерам просто означает, что так как элемент <i> открывается внутри элемента <b>, то и закрываться он должен внутри элемента <b>.

Значения XML атрибутов должны заключаться в кавычки

Так же, как и в HTML, у XML элементов могут быть атрибуты в виде пары имя/значение.

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

Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно.

Пример 1

<note date=12/11/2007>
   <to>Tove</to>
   <from>Jani</from>
</note>

Пример 2

<note date="12/11/2007">
   <to>Tove</to>
   <from>Jani</from>
</note>

Ошибка в первом XML документе заключается в том, что значение атрибута date элемента <note> не заключено в кавычки.

Сущности

Некоторые символы в XML имеют особые значения.

Если вы поместите, например, символ «<» внутри XML элемента, то будет сгенерирована ошибка, так как парсер интерпретирует его, как начало нового элемента.

Так, к ошибке приведет следующая строка XML документа:

<message>если жалование < 1000</message>

Чтобы такая ошибка не возникала, нужно заменить символ «<» на его сущность:

<message>если жалование &lt; 1000</message>

В XML существует 5 предопределенных сущностей:

СущностьСимволЗначение
&lt;<меньше, чем
&gt;
>больше, чем
&amp;&амперсанд
&apos;апостроф
&quot;«кавычки

Только символы «<» и «&» строго запрещены в XML. Символ «>» допустим, но лучше его всегда заменять на сущность.

Комментарии в XML

Синтаксис комментариев в XML такой же, как и в HTML.

<!-- Это комментарий -->

Использование двух символов тире в середине комментария не допустимо.

Неверно:

<!-- Это -- комментарий -->

Странно, но так можно:

<!-- Это - - комментарий -->

В XML пробелы сохраняются

В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.

В XML новая строка сохраняется как LF

В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).

Unix и Mac OSX используют LF.

Старые Mac системы используют CR.

XML сохраняет новую строку как LF.

Синтаксически верный XML документ

Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» XML документ.

XML Введение — XML: Extensible Markup Language

XML — это язык разметки подобный HTML. Расшифровывается как (англ. Extensible Markup Language — Расширяемый Язык Разметки) и является рекомендацией сообщества W3C в качестве языка разметки общего назначения (W3C recommended). В отличии от остальных языков разметки, XML сам по себе не определён (это означает, что вы должны сами определять используемые теги). Основной целью XML является передача данных между разными системами (даже концептуально разными), такими как интернет.

Много языков базируются на XML; Некоторые примеры: XHTML, MathML, SVG, XUL, XBL, RSS, и RDF. Вы можете создать свой.

Правила оформления

Для корректного XML документа должны исполняться следующие условия:

  • Правильное оформление документа.
  • Соблюдаться все синтаксические правила XML.
  • Документ должен соответствовать семантическим правилам языка (которые обычно заданны в схеме XML или DTD (англ. Document Type Definition (en-US))).

Пример

Пример ниже показывает документ с тегом, который не закрывает сам себя и не имеет закрывающего тега (это неправильно оформленный XML документ).

<message>
    <warning>
        Hello World
    <!--missing </warning> -->
</message>

Давайте посмотрим на корректную версию этого документа:

<message>
    <warning>
         Hello World
    </warning>
</message>

Документ содержащий неопределённый тег является не корректным. Например, если мы не определили тег <warning>, документ не корректен.

Примечание: В большинство браузеров встроен дебаггер, который может идентифицировать плохо написанный XML документ.

HTML и XML предлагают методы (которые называют сущности) для обращения к специальным зарезервированным символам (например угловые скобки, обозначающие начало и конец тега). Существует пять сущностей, которые вы обязательно должны знать:

Сущность Символ Описание
&lt; < Знак меньше (одна из угловых скобок)
&gt; > Знак больше (одна из угловых скобок)
&amp; & Амперсанд
&quot; « Двойная кавычка
&apos; Одинарная кавычка (апостроф)

Не смотря на то, что по умолчанию создано всего пять сущностей, вы можете добавить в документ свои сущности используя Document Type Definition (en-US). Например, создать новую &warning; сущность, можно так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE body [
  <!ENTITY warning "Предупреждение: произошла ошибка, обновите и попробуте ещё раз.">
]>
<body>
  <message> &warning; </message>
</body>

Также вы можете использовать нумерические ссылки для специфический специальных символов. Например, &#xA9; — это символ «©».

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

Один из методов отображения XML — указать CSS (чтобы использовать в документе нужно прописать инструкцию xml-stylesheet, как показано в примере ниже).

<?xml-stylesheet type="text/css" href="stylesheet.css"?>

Есть также много других мощных методов отображения XML, например, XSLT(англ. Extensible Stylesheet Language Transformations

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

<?xml-stylesheet type="text/xsl" href="transform.xsl"?>

Эта статья является очень маленьким введением в XML, с очень маленьким количеством примеров и ссылок для того, чтобы вы могли начать работать с этим языком. Чтобы больше узнать про XML, вам придётся искать информацию и более информативные статьи в интернете.

Изучайте HTML (англ. HyperText Markup Language), знание HTML поможет вам лучше понять XML.

  • XML.com
  • Extensible Markup Language (XML) @ W3.org
  • XML Example: A List Apart
  • Using XML: A List Apart

Статья Using XML — отличный ресурс с большим количеством информации о создании своего языка на основе XML.

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.
Want to get more involved?

Learn how to contribute.

This page was last modified on by MDN contributors.

Обзор XML | Junos OS

Extensible Markup Language (XML) — это язык для определения набора маркеров, называемых тегами , которые применяются к набору данных или документу для описания функции отдельных элементов и систематизировать иерархические отношения между ними. Теги XML очень похожи на язык гипертекстовой разметки (HTML). теги, но XML на самом деле является метаязыком, используемым для определения тегов, которые лучше всего подходят для маркируемых данных.

Дополнительные сведения об XML см. в разделе 9.0009 Техническое введение XML на http://www.xml.com/pub/a/98/10/guide0.html и дополнительные справочные материалы на сайте http://www.xml.com. Официальная спецификация XML от консорциума World Wide Web. (W3C), Расширяемый язык разметки (XML) 1. 0 , доступен по адресу http://www.w3.org/TR/REC-xml.

В следующих разделах обсуждаются общие аспекты XML:

Элементы тегов

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

 <состояние интерфейса>включено
25378 

Термин элемент тега относится к трехчастному set: открывающий тег, содержимое и закрывающий тег. Контент может быть буквенно-цифровая строка символов, как в предыдущих примерах, или может быть элементом тега контейнера , который содержит другие элементы тега. Для простоты термин тег часто используется взаимозаменяемо с элементом тега или 9.0005 элемент .

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

Как видно из предыдущих примеров, имя заключено в угловые скобки. элемента тега. Это соглашение XML, и скобки обязательная часть полного имени элемента тега. Они не должны путать с угловыми скобками, используемыми в документации Juniper Networks для указания необязательных частей строк команд CLI ОС Junos.

Элементы тега Junos XML подчиняются соглашению XML, согласно которому тег имя элемента указывает на тип информации, заключенной в теги. Например, имя элемента тега Junos XML указывает, что он содержит описание текущего состояние интерфейса на устройстве, тогда как имя элемента тега указывает, что его содержимое укажите количество полученных байтов.

При обсуждении элементов тегов в тексте эта документация обычно использует только открывающий тег для представления полного элемента тега (открывающий тег, содержимое и закрывающий тег). Например, в документации упоминается к тег для указания весь элемент тега number-of-bytes .

Атрибуты

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

В следующем примере элемент конфигурации имеет два атрибута: junos:changed-seconds и junos:changed-localtime .

  

Значение атрибута junos:changed-seconds равно «1279908006 «, а значением атрибута junos:changed-localtime является «2010-07-23 11:00:06 PDT».

Пространства имен

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

Чтобы обратиться к тегу, атрибуту или функции из определенного пространства имен, вы должны сначала указать пространство имен Единый ресурс Идентификатор (URI) в объявлении вашей таблицы стилей. Затем вы определяете тег, атрибут или функцию из пространства имен. с URI. Поскольку URI часто бывает длинным, обычно используется более короткий префикс. сопоставляется с URI.

В следующем примере префикс jcs сопоставляется с пространством имен, указанным URI http://xml.juniper.net/junos/commit-scripts/1.0 , который определяет функции расширения, используемые в сценариях фиксации, операции, события и SNMP. 9Префикс 0037 JCS затем добавляется к выходной функции , которая определена в этом пространство имен.

 
 
...

  

Во время обработки префикс заменяется на ссылку URI. Хотя может быть несколько пространств имен, определяющих вывод элемент или функция, использование jcs:output явно определяет, какая функция output используется. Вы можете выбрать любой префикс для ссылки на содержимое в пространстве имен, но в XML должно быть существующее объявление документ, который связывает префикс с соответствующим URI.

Определение типа документа

Документ или набор данных с XML-тегами структурирован , поскольку набор правил определяет порядок и взаимосвязи предметов в нем. Правила определяют контексты, в которых каждый помеченный элемент может — а в некоторых случаях и должен — произойти. Файл под названием определение типа документа или DTD , перечисляет каждый элемент тега, который может появиться в документе или наборе данных, определяет родительско-дочерние отношения между тегами и указывает другие характеристики тега. Одно и то же DTD может применяться ко многим XML-документам. или наборы данных.

Элементы XML

❮ Предыдущий Далее ❯


Документ XML содержит элементы XML.


Что такое элемент XML?

Элемент XML — это все, начиная с (включая) начального тега элемента и заканчивая (включая) конечный тег элемента.

29.99

Элемент может содержать:

  • текст
  • атрибутов
  • прочие элементы
  • или смесь вышеуказанных


 
    Гарри Поттер
    Дж. К. Роулинг
    2005
    29,99
 

 
    Learning XML
    Эрик Т. Рэй
    2003
    39,95
 

В приведенном выше примере:

<название>, <автор>, <год> и <цена> имеют текст content , потому что они содержат текст (например, 29,99).

и содержат элементы , потому что они содержат элементы.

<книга> имеет атрибут (категория = «дети»).


Пустые элементы XML

Элемент без содержимого считается пустым.

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

Вы также можете использовать так называемый самозакрывающийся тег:

Две формы производят идентичный результаты в программном обеспечении XML (читатели, синтаксические анализаторы, Браузеры).

Пустые элементы могут иметь атрибуты.



Правила именования XML

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

  • Имена элементов чувствительны к регистру
  • Имена элементов должны начинаться с буквы или символа подчеркивания
  • Имена элементов не могут начинаться с букв xml (или XML, или Xml и т. д.)
  • Имена элементов могут содержать буквы, цифры, дефисы, символы подчеркивания и точки
  • Имена элементов не могут содержать пробелы

Можно использовать любое имя, слова не зарезервированы (кроме xml).


Лучшие практики именования

Создавайте описательные имена, например: <человек>, <имя>, <фамилия>.

Создавайте короткие и простые имена, например: не так: .

Избегайте «-«. Если вы назовете что-то «имя», некоторые программы могут думаю, вы хотите вычесть «имя» из «первого».

Избегайте «.». Если вы назовете что-то «first.name», некоторые программы могут думаю, что «имя» является свойством объекта «первый».

Избегайте «:». Двоеточия зарезервированы для пространства имен (подробнее позже).

Неанглийские буквы, такие как éòá, вполне допустимы в XML, но следите за проблемы, если ваше программное обеспечение их не поддерживает!


Соглашения об именах

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

Стиль Пример Описание
Нижний регистр <имя> Все буквы строчные
Верхний ящик <ИМЯ> Все буквы прописные
Футляр для змеи <имя> Подчеркивание разделяет слова (обычно используется в базах данных SQL)
Чемодан Паскаль <Имя> Первая буква в каждом слове в верхнем регистре (обычно используется программистами на C)
Верблюжий регистр <имя> Первая заглавная буква в каждом слове, кроме первой (обычно используется в JavaScript)

Совет! Выберите свой стиль именования и будьте последовательны!

Документы XML часто имеют соответствующую базу данных. Распространенной практикой является использование правила именования базы данных для элементов XML.


Элементы XML являются расширяемыми

Элементы XML могут быть расширены для переноса дополнительной информации.

Посмотрите на следующий пример XML:

<примечание>
Туве
Яни
Не забывайте меня в эти выходные!

Давайте представим, что мы создали приложение, которое извлекает , , и элементы из XML-документа для получения следующего результата:

СООБЩЕНИЕ

Кому: Туве
От кого: Яни

Не забудь меня в эти выходные!

Представьте, что автор XML-документа добавил в него дополнительную информацию:


2008-01-10
Туве
Яни
Напоминание
Не забудьте меня в эти выходные!

Должно ли приложение сломаться или вылететь?

Нет.