XML схемы: описание типов XML документов, ограничения структуры и контента. DTD, XML Schema, RELAX NG – языки для определения схем. SEO-оптимизация XML.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Описание типа XML-документа. XML-схемы в целом.
Description of a type of XML document
XML schemas in general
XML-схема – это описание типа XML-документа, обычно выраженное в виде ограничений на структуру и содержание документов этого типа, помимо основных синтаксических ограничений, налагаемых самим XML. Эти ограничения обычно выражаются с использованием комбинации грамматических правил, определяющих порядок элементов, логических условий, которым должно соответствовать содержимое, типов данных, определяющих содержимое элементов и атрибутов, а также более специализированных правил, таких как ограничения уникальности и ссылочной целостности. Существуют языки, разработанные специально для описания XML-схем. Язык определения типа документа (DTD), являющийся частью спецификации XML, представляет собой язык схемы с относительно ограниченными возможностями, но также имеющий и другие применения в XML, помимо описания схем. Два более выразительных языка XML-схем, широко используемых в настоящее время, – XML Schema (с заглавной буквы S) и RELAX NG. Механизм сопоставления XML-документа со схемой зависит от используемого языка схемы. Сопоставление может быть выполнено с помощью разметки непосредственно в XML-документе или внешними средствами. XML Schema Definition обычно называют XSD.
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints. There are languages developed specifically to express XML schemas. The document type definition (DTD) language, which is native to the XML specification, is a schema language that is of relatively limited capability, but that also has other uses in XML aside from the expression of schemas. Two more expressive XML schema languages in widespread use are XML Schema (with a capital S) and RELAX NG. The mechanism for associating an XML document with a schema varies according to the schema language. The association may be achieved via markup within the XML document itself, or via some external means. The XML Schema Definition is commonly referred to as XSD.
Валидация
Процесс проверки соответствия XML-документа схеме называется валидацией и отличается от базового понятия XML о синтаксической корректности. Все XML-документы должны быть корректными, но документ не обязан быть валидным, если XML-парсер не настроен на "валидацию", в этом случае документ также проверяется на соответствие связанной с ним схеме. Наиболее распространены парсеры, использующие DTD, но некоторые поддерживают также XML Schema или RELAX NG. Валидация экземпляра документа по схеме может рассматриваться как концептуально отдельная операция от разбора XML. Однако на практике многие валидаторы схем интегрированы с XML-парсером.
The process of checking to see if a XML document conforms to a schema is called validation, which is separate from XML's core concept of syntactic well formedness. All XML documents must be well formed, but it is not required that a document be valid unless the XML parser is "validating", in which case the document is also checked for conformance with its associated schema. DTD validating parsers are most common, but some support XML Schema or RELAX NG as well. Validation of an instance document against a schema can be regarded as a conceptually separate operation from XML parsing. In practice, however, many schema validators are integrated with an XML parser.
Недостатки
W3C XML Schema сложна и трудна для изучения, хотя это отчасти связано с тем, что она пытается выполнять функции, выходящие за рамки простой валидации (см. PSVI). Написание на XML является преимуществом, но в некоторых аспектах и недостатком. Язык XML Schema W3C, в частности, может быть весьма многословным, в то время как DTD может быть лаконичным и относительно легко редактируемым. Кроме того, формальный механизм WXS для связывания документа со схемой может представлять потенциальную угрозу безопасности. Для валидаторов WXS, переходящих по URI к произвольному сетевому ресурсу, существует риск получения вредоносного содержимого. W3C XML Schema не реализует большинство возможностей DTD по предоставлению элементов данных в документ. Хотя возможность W3C XML Schema добавлять атрибуты по умолчанию к элементам является преимуществом, она также имеет и недостатки. Это означает, что XML-файл может оказаться непригодным для использования без своей схемы, даже если документ успешно проходит валидацию по этой схеме. По сути, все пользователи такого XML-документа должны также реализовывать спецификацию W3C XML Schema, что исключает использование минималистичных или устаревших XML-парсерoв. Это также может замедлить обработку документа, поскольку процессору потенциально потребуется загрузить и обработать второй XML-файл (схему); однако схема обычно кэшируется, поэтому затраты возникают только при первом использовании.
W3C XML Schema is complex and hard to learn, although that is partially because it tries to do more than mere validation (see PSVI). Although being written in XML is an advantage, it is also a disadvantage in some ways. The W3C XML Schema language, in particular, can be quite verbose, while a DTD can be terse and relatively easily editable. Likewise, WXS's formal mechanism for associating a document with a schema can pose a potential security problem. For WXS validators that will follow a URI to an arbitrary online location, there is the potential for reading something malicious from the other side of the stream. W3C XML Schema does not implement most of the DTD ability to provide data elements to a document. Although W3C XML Schema's ability to add default attributes to elements is an advantage, it is a disadvantage in some ways as well. It means that an XML file may not be usable in the absence of its schema, even if the document would validate against that schema. In effect, all users of such an XML document must also implement the W3C XML Schema specification, thus ruling out minimalist or older XML parsers. It can also slow down the processing of the document, as the processor must potentially download and process a second XML file (the schema); however, a schema would normally then be cached, so the cost comes only on the first use.
Поддержка инструментов
WXS поддержка реализована во многих крупных пакетах для разбора XML. Xerces и базовая библиотекa .NET Framework поддерживают валидацию WXS.
WXS support exists in a number of large XML parsing packages. Xerces and the NET Framework's Base Class Library both provide support for WXS validation.
RELAX NG
RELAX NG предоставляет большинство преимуществ, которые W3C XML Schema имеет перед DTD.
RELAX NG provides for most of the advantages that W3C XML Schema does over DTDs.