XML - статьи

Использование полных имен


В XML документах, отвечающих требованиям данной спецификации, даются для следующих типов элементов:

Типы элементов



[9] STag ::= '<' ( )* ? '>' [ NSC: ]
[10]  ETag ::= '</' ? '>' [ NSC: ]
[11]  EmptyElemTag ::= '<' ( )* ? '/>' [ NSC: ]

Пример использования полного имени в качестве типа элемента:

<x xmlns:edi='http://ecommerce.org/schema'>

  <!-- пространство имен элемента 'price' - http://ecommerce.org/schema -->

  <edi:price units='Euro'>32.18</edi:price>

</x>

Атрибут либо , либо его название дается как :

Атрибут

[12]  Attribute ::=
[ NSC: ]

Пример использования полного имени в качестве названия атрибута:

<x xmlns:edi='http://ecommerce.org/schema'>

  <!-- пространство имен атрибута 'taxClass' - http://ecommerce.org/schema -->

  <lineItem edi:taxClass="exempt">Baby food</lineItem>

</x>

Ограничение пространства имен: Декларированный префикс

Префикс пространства имен, если это ни xml и ни xmlns, должен быть объявлен в атрибуте, и находящемся в начальном тэге либо того элемента, где этот префикс используется, либо элемента, являющегося его предком (то есть, находиться в элементе, в которого действует префиксная разметка). Префикс xml по определению связан с названием пространства имен http://www.w3.org/XML/1998/namespace. Префикс xmlns используется только для привязки к пространству имен, но сам с каким-либо названием пространства имен не связан.

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


Если название элемента или тип атрибутов появляются в декларациях , они могут быть представлены при этом в виде полного имени.

Полные имена в декларациях
[13]  doctypedecl ::= '<!DOCTYPE' ( )? ? ('[' ( |  | )* ']' ?)? '>'
[14]  elementdecl ::= '<!ELEMENT' ? '>'
[15]  cp ::= ( |  | ) ('?'

| '*' | '+')?
[16]  Mixed ::= '(' ? '#PCDATA' (? '|' ? )* ? ')*'
| '(' ? '#PCDATA' ? ')'
[17]  AttlistDecl ::= '<!ATTLIST' * ? '>'
[18]  AttDef ::= ( | )

Содержание раздела