понедельник, 13 ноября 2017 г.

Сущности XML

Мы сталкивались по HTML, что есть такой простой способ в XML описания т.н. спецсимволов. Когда я хочу написать, что а > b, в том же хтмл, мы говорили, что знак "больше" юзать нельзя, это зарезервированный символ и в HTML, и в XML. Обозначает он именно закрывание тега, а не больше.
В хтмл есть целый набор специальных знаков, который просто так на клаве не наберешь. Либо сложно, либо проще набрать по-другому.
Они записываются так:
< - less then - меньше.
&gt - больше
&amp - амперсанд.
Эти три символа срабатывают в XML.
В хтмл таких сущностей много, например:
  - неразрывный пробел, &copy - копирайт. В хтмл они определены, а в XML - нет. Это язык более абстрактный, универсальный.
Он ща рассматривается анализатором хтмла, т.е. их нет.
Мы уже объявили, что это типа хтмл, парсер это объявление увидел, он не знает, что в хтмл. Он не лазает вот сюда, вовнутрь. Необходимость объявления сущностей.



&nbsp - это не спецсимволы. В XML - это сущности. На самом деле - это константы. Впоследствии, когда я буду использовать &nbsp - это константа неразрывного пробела. Т.е. когда я начинаю его использовать, мы выдаем команду анализатору подставить вот сюда реальный байт или набор байтов.

< &gt, &amp - это константы, которые заменяют запрещенные символы. А для этих:    &copy - констант нет. Но XML - расширяем. Мы можем запилить что угодно. Например, компания, семейная компания.  Я в тексте пишу - вот сюда подставить название компании, оно раз - и подставило. Эти сущности могут быть не просто строками, они могут быть куском документа. В XML это все расширяемо. Где это описывается? В грамматике.

Как сделать так, чтобы сейчас анализатор понял, что грамматические сущности из другого стандарта. Подстегнуть грамматику другого стандарта. Не просто сказать ему, ну, типа, здесь это. А сказать, что вот она, грамматика, на, читай. И он прочитает ее и тогда уже поймет что с ней делать.



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

Отправить комментарий