C Использование объектов

XML 1.0 обеспечивает различные типы объектов, называемые фрагментами содержания, которые могут использоваться как в конструкциях DTD (объекты параметров), так и в документах примеров. В Разделе 2.7, мы показали, как именованные группы подражают объектам параметров. В этом разделе мы покажем, как объекты могут быть объявлены в документах, и как функциональные эквиваленты объектов могут быть объявлены в схемах.

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

Объявление и ссылка на объект в документе примера.

<?xml version="1.0" ?>
<!DOCTYPE PurchaseOrder [
<!ENTITY eacute "é">
]>
<purchaseOrder xmlns="http://www.example.com/PO1"
             orderDate="1999-10-20>
 <!-- etc. --> 
  <city>Montr&eacute;al</city>
 <!-- etc. -->
</purchaseOrder>

Здесь, мы объявляем объект с именем eacute, как часть внутреннего (DTD) подмножества, и ссылаемся на этот объект в содержании элемента city. Обратите внимание, когда этот документ примера обработан, объект будет разименован прежде, чем будет проведена проверка правильности схемы. Другими словами, обработчик схемы определит правильность использования Montréal в элементе city, как значение элемента.

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

<xsd:element name="eacute" type="xsd:token" fixed="é"/>

Теперь этот элемент может быть использован в документе:

Использование элемента вместо объекта в документе.

<?xml version="1.0" ?>
<purchaseOrder
       xmlns="http://www.example.com/PO1"
       xmlns:c="http://www.example.com/characterElements"
       orderDate="1999-10-20>
 <!-- etc. -->
  <city>Montr<c:eacute/>al</city>
 <!-- etc -->
</purchaseOrder>

В этом случае, обработчик схемы обработает два элемента, элемент city и элемент eacute, содержанием, которого является единственный символом é. Обратите внимание, что дополнительный элемент усложнит строковое соответствие. Две формы имени "Montréal", представленные выше в этих двух примерах не будут соответствовать друг другу, используя обычные методы строкового сравнения.

 

Используются технологии uCoz