Язык XML

Автор: Пользователь скрыл имя, 05 Декабря 2010 в 11:23, реферат

Краткое описание

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён (англ. namespace).

Оглавление

1 Правильно построенные и действительные документы XML

2 Синтаксис XML

2.1 Объявление XML

2.2 Корневой элемент

2.3 Комментарий

2.4 Тэги

2.5 Спецсимволы

3 История

4 Сильные и слабые стороны

4.1 Достоинства

4.2 Недостатки

5 Отображение XML во Всемирной паутине

5.1 Применение стилей CSS

5.2 Применение преобразования XSLT

6 Словари XML

7 Версии XML

8 См. также

9 Примечания

10 Литература

Файлы: 1 файл

язык.doc

— 185.50 Кб (Скачать)

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

   В XML есть несколько предопределённых сущностей, таких как lt (ссылаться на неё можно написав <) для левой угловой скобки и amp (ссылка — &) для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков.

   Ниже  приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:

   <company-name>AT&amp;T</company-name>

   Полный  список предопределённых сущностей  состоит из &amp; (&), &lt; (<), &gt; (>), &apos; (') и &quot; (") — последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD-документе.

   Иногда  бывает необходимо определить неразрывный  пробел, который очень часто используется в HTML и обозначается как &nbsp;. В XML такой предопределённой сущности нет, его записывают &#160;, а использование &nbsp; вызывает ошибку. Отсутствие этой весьма распространённой сущности у множества программистов зачастую вызывает удивление и это создаёт некоторые трудности при миграции своих HTML-разработок в XML.

   Ссылка  по номеру символа (англ. numeric character reference) выглядит как ссылка на сущность, но вместо имени сущности указывается символ # и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод. Это обычно символы, которые невозможно закодировать напрямую, например, буква арабского алфавита в ASCII-кодированном документе. Амперсанд может быть представлен следующим образом:

   <company-name>AT&#38;T</company-name>

   Существуют  и другие правила, касающиеся составления  корректного XML-документа.

   История

   Годом рождения XML можно считать 1996 год, в конце которого появился черновой вариант спецификации языка, или 1998 год, когда эта спецификация была утверждена. А началось всё с появления в 1986 году языка SGML.

   SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки) заявил о себе как гибкий, комплексный и всеохватывающий мета-язык для создания языков разметки. Несмотря на то, что понятие гипертекста появилось в 1965 году (а основополагающие принципы сформулированы в 1945 году[1]), SGML не имеет гипертекстовой модели. Создание SGML можно с уверенностью назвать попыткой объять необъятное, так как он объединяет в себе такие возможности, которые крайне редко используются все вместе. В этом и состоит его главный недостаток — сложность и, как следствие, дороговизна этого языка ограничивает его использование только крупными компаниями, которые могут позволить себе купить соответствующее программное обеспечение и нанять высокооплачиваемых специалистов. Кроме того, у небольших компаний редко возникают настолько сложные задачи, чтобы привлекать к их решению SGML.

   Наиболее  широко SGML применяется для создания других языков разметки, именно с его помощью был создан язык разметки гипертекстовых документов — HTML, спецификация которого была утверждена в 1992 году. Его появление было связано с необходимостью организации стремительно увеличивающегося массива документов в сети Интернет. Бурный рост количества подключений к Интернету и, соответственно, веб-серверов повлек за собой такую потребность в кодировке электронных документов, с которой не мог справиться SGML вследствие высокой трудности освоения. Появление HTML — очень простого языка разметки — быстро решило эту проблему: лёгкость в изучении и богатство средств оформления документов сделали его самым популярным языком для пользователей Интернет. Но, по мере роста количества и изменения качества документов в Сети, росли и предъявляемые к ним требования, и простота HTML превратилась в его главный недостаток. Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате на свет появился язык XML, сочетающий в себе простоту HTML, логику разметки SGML и удовлетворяющий требованиям Интернета.

   Сильные и слабые стороны

   Достоинства

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

   XML поддерживает Юникод;

   в формате XML могут быть описаны такие  структуры данных как записи, списки и деревья;

   XML — это самодокументируемый формат, который описывает структуру и имена полей так же как и значения полей;

   XML имеет строго определённый синтаксис  и требования к анализу, что  позволяет ему оставаться простым,  эффективным и непротиворечивым. Одновременно с этим, разные разработчики  не ограничены в выборе экспрессивных методов (например, можно моделировать данные, помещая значения в параметры тегов или в тело тегов, можно использовать различные языки и нотации для именования тегов и т. д.);

   XML — формат, основанный на международных стандартах;

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

   XML представляет собой простой текст,  свободный от лицензирования и каких-либо ограничений;

   XML не зависит от платформы;

   XML является подмножеством SGML (который  используется с 1986 года). Уже накоплен большой опыт работы с языком и созданы специализированные приложения;

   XML не накладывает требований на  порядок расположения атрибутов  в элементе и вложенных элементов  разных типов[2], что существенно облегчает выполнение требований обратной совместимости;

   В отличие от бинарных форматов, XML содержит метаданные об именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной структуры (например, для динамического построения интерфейсов[3]);

   XML имеет реализации парсеров для всех современных языков программирования;[4]

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

   XML поддерживается на низком аппаратном, микропрограммном и программном  уровнях в современных аппаратных решениях.[5]

   Недостатки

   Синтаксис XML избыточен.[6]

   Размер XML-документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз).

   Размер XML-документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON[2], YAML) и особенно в форматах данных, оптимизированных для конкретного случая использования.

   Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.

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

   Для большого количества задач не нужна  вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения.[7]

   Неоднозначность моделирования.

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

   В природе есть множество объектов и явлений, для описания которых  разные структуры данных (сетевая, реляционная, иерархическая) являются естественными, и отображение объекта в неестественную для него модель является болезненным для его сути. В случае с реляционной и иерархической моделями определены процедуры декомпозиции, обеспечивающие относительную однозначность, чего нельзя сказать о сетевой модели.[8]

   В результате большой гибкости языка  и отсутствия строгих ограничений, одна и та же структура может быть представлена множеством способов (различными разработчиками), например, значение может быть записано как атрибут тега или как тело тега и т. д. Например: <a b="1" c="1"/> или <a b="1" c="1"></a> или <a><b>1</b><c>1</c></a> или <a><c value="1"/></a> или <a><fields b="1" c="1"/></a> и т. д.[9]

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

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

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

   Выражение неиерархических данных (например графов) требует дополнительных усилий

   Кристофер Дейт, специалист в области реляционных баз данных, автор классического учебника «An Introduction to Database Systems», отмечал, что «…XML является попыткой заново изобрести иерархические базы данных…»[10] (в 1980-е года иерархические базы данных были вытеснены реляционными базами данных).

Информация о работе Язык XML