Внешний набор
[30] | extSubset | ::= | ? | |
[31] | extSubsetDecl | ::= | ( | | )* | /* */ |
Внешний набор и внешние сущности параметров отличаются от внутреннего набора также и тем, что для них может появляться не только в интервалах между декларациями разметки, но и в границах самих этих деклараций.
Пример XML документа с декларацией типа документа:
<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting> |
"hello.dtd" указывает адрес DTD этого документа (ссылку URI).
Декларации также могут быть представлены локально, как это делается в следующем примере:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>Hello, world!</greeting> |
Если используются и внешний, и внутренний наборы деклараций, то внутренний набор рассматривается прежде внешнего. Как следствие этого, декларации сущностей и списка атрибутов во внутреннем наборе имеют приоритет над аналогичными декларациями во внешнем наборе.