Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман


Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман
C Использование объектов
XML 1.0 обеспечивает различные типы объектов,
называемые фрагментами содержания, которые могут использоваться как в
конструкциях DTD (объекты параметров), так и в документах примеров. В Разделе 2.7, мы показали, как именованные группы
подражают объектам параметров. В этом разделе мы покажем, как объекты могут
быть объявлены в документах, и как функциональные эквиваленты объектов могут
быть объявлены в схемах.
Предположим, мы хотим объявить и
использовать объект в документе примера, и этот документ ограничен схемой.
Например:
Объявление и
ссылка на объект в документе примера.
<?xml version="1.0" ?>
<!DOCTYPE PurchaseOrder [
<!ENTITY eacute "&eacute;">
]>
<purchaseOrder xmlns="http://www.example.com/PO1"
orderDate="1999-10-20>
<!-- etc. -->
<city>Montr&eacute;al</city>
<!-- etc. -->
</purchaseOrder>
Здесь, мы объявляем объект с
именем eacute, как часть внутреннего (DTD) подмножества, и ссылаемся на
этот объект в содержании элемента city. Обратите внимание, когда этот документ
примера обработан, объект будет разименован прежде, чем будет проведена
проверка правильности схемы. Другими словами, обработчик схемы определит
правильность использования Montr&eacute;al в
элементе city,
как значение элемента.
Подобный, но не идентичный
результат, мы можем достигнуть, объявляя элемент в схеме, и устанавливая
содержание элемента следующим образом:
<xsd:element name="eacute"
type="xsd:token" fixed="&eacute;"/>
Теперь этот элемент может быть
использован в документе:
Использование
элемента вместо объекта в документе.
<?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, содержанием, которого является
единственный символом &eacute;. Обратите внимание, что дополнительный
элемент усложнит строковое
соответствие. Две формы
имени "Montr&eacute;al", представленные выше в этих двух примерах не будут
соответствовать друг другу, используя обычные методы строкового сравнения.

#bn {display:block;}
#bt {display:block;}
содержание | 2 | Модели судов и кораблей
Используются технологии uCoz