ИМХО очень важна проблема использования DTD (возможно, вместе с XSD, если вам требуется углубленная проверка):
В DTD вы можете определить свои собственные сущности, например:
<!ENTITY MyName "DrDr.Hannibal Xerxes Utah,MBA and CEO">
В своем документе вы можете везде, где это необходимо, просто ввести код & MyName;вместо этого наберите весь этот материал.
Кроме того, предположим, что у вас есть XML-подобный файл (возможно, созданный каким-либо другим приложением), который состоит из множества похожих тегов, но без корневого тега, например:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- you need this when using foreign characters like 'ü' -->
<Book Author="Author1">
<Titel>Erstes Buch</Titel>
</Book>
...
<Book Author="Author5">
<Titel>Fünftes Buch</Titel>
</Book>
Предположим, этот файл называется "Booklist.TXT",
Теперь вы можете кодировать свой master-xml:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- you need this when using foreign characters like 'ü' -->
<DOCTYPE MyRoot [
<ENTITY AllBooks SYSTEM "Booklist.TXT">
]
<MyRoot>
... some prefix-stuff as needed ...
&AllBooks; <!-- here are all the Books -->
... some post stuff es needed ...
</MyBook>
, и когда вам нужны книги в другом контексте, вы толькодолжен кодировать окружающий xml и не касаться и не копировать сам список книг, кроме того, вы можете поддерживать его в одном месте и вносить все изменения в любой документ.