Создание новых языков
Создание новых языков
Хотя мы и говорим об XML, как о формате описания данных, на самом деле XML — это метаязык, язык, который описывает другие языки. Строго говоря, когда мы создаем XML-документ, мы создаем его не на XML, а в соответствии с XML-синтаксисом. XML — это всего лишь набор синтаксических правил, не более. Настоящим языком в этой ситуации является то, что мы понимаем под логической, семантической схемой создаваемого документа.
Таким образом, каждый раз, когда мы описываем логическую схему документа, мы создаем новый язык с придуманной нами семантикой и XML-синтаксисом. Достоинством XML в данном случае является стандартность этого синтаксиса, поскольку заботиться о создании модуля для синтаксического разбора (парсера) уже не нужно.
Что же касается семантики языка, то во многих случаях древовидные XML-структуры очень хорошо подходят для ее описания, будь это язык формата документа или язык программирования.
Главным недостатком XML является громоздкость синтаксиса. Например, арифметическое выражение 2*2 может быть выражено в XML приблизительно как:
<mul>
<arg>2</arg>
<arg>2</arg>
</mul>
Очевидно, что с человеческой точки зрения это не самый компактный и элегантный способ.
На данный момент существует великое множество языков, созданных на основе XML. Мы перечислим несколько наиболее известных из них:
? WML (Wireless Markup Language) — язык разметки для беспроводных устройств, основной формат данных для беспроводного протокола WAP;
? SVG (Scalable Vector Graphics) — язык описания масштабируемой векторной графики;
? XHTML — XML-совместимая версия языка гипертекстовой разметки документов;
? SOAP (Simple Object Access Protocol) — XML-протокол для обмена информацией в распределенных системах;
? RDF (Resource Description Framework) — система описания ресурсов;
? XML/EDI (XML/Electronic Data Interchange) — XML-язык для представления сообщений EDI в системах В2В и электронной коммерции;
? OML (Ontology Markup Language) — язык для описания онтологий и тезаурусов;
? VoxML (Voice Markup Language) — язык разметки для голосовых приложений;
? MathML (Mathematical Markup Language) — язык для описания математических выражений;
? CML (Chemical Markup Language) — язык для описания химических формул;
? UML exchange Format — XML-выражения языка UML (Unified Modeling Language);
? CDF (Channel Description Format) — язык для описания данных для автоматической доставки клиенту (технология push-каналов).
Несмотря на то, что XML это язык разметки, он вполне подходит для создания языков программирования. Самым лучшим примером является язык XSLT, которому посвящена эта книга. Кроме того, существует множество менее известных языков, например XML-версия функционального языка Lisp, язык HaXML и другие.