Некоторые XML-документы имеют тип определений описанных в стандарте, например, XML-схемы XML или таблиц стилей. DTD-файлы для них полностью предопределенным и хранятся на принимающие W3C.
Для таких документов, SAX-анализатор может избежать ссылки через Интернет с использованием локальной копии DTD-файле. В целях выполнения таких замен, SAX предлагает механизма enity решения. Обработчик ниже показывает ее использования:
<!-- file: purchase-order.dtd --> <!-- declaration of the root element and its attributes --> <!ELEMENT purchase-order (purchased-by, order-items)> <!ATTLIST purchase-order date CDATA #REQUIRED number CDATA #REQUIRED > <!ELEMENT purchased-by (address)> <!ATTLIST purchased-by name CDATA #REQUIRED > <!ELEMENT address (#PCDATA)> <!-- order-items can contains at least on item --> <!ELEMENT order-items (item+)> <!ELEMENT item EMPTY> <!ATTLIST item code CDATA #REQUIRED type CDATA #REQUIRED label CDATA #REQUIRED > <!-- file: sample.xml --> <?xml version="1.0"?> <!DOCTYPE purchase-order SYSTEM "http://www.my-company.com/order-1.0.dtd"> <!-- XML document may refer DTD-file that is located somewhere on WEB. --> <purchase-order date="2005-10-31" number="12345"> <purchased-by name="My name"> <!-- we comment it to lead an error: <address>My address</address> --> </purchased-by> <order-items> <!-- here is an example of empty element i.e. containing no nested elements --> <item code="687" type="CD" label="Some music" /> <item code="129851" type="DVD" label="Some video"/> </order-items> </purchase-order>
|