Нет способа "предоставить docbookxi.rng для цепочки инструментов", который помог бы в этом случае.Нет даже стандартного способа связать документ XML со схемой RELAX NG.Объявление пространства имен xmlns="http://docbook.org/ns/docbook"
идентифицирует документ как DocBook 5 (вместе с атрибутом version
), но ничего не говорит о расположении схемы.
Строка, подобная этой,
<xi:include href="./TestDocument.included.xml" xpointer="Section2"/>
означает: «включает часть TestDocument.included.xml
, которая идентифицируется элементом, который имеет атрибут типа ID со значением Section2
».
В DocBook 5, xml:id
используется для уникальных идентификаторов.Этот атрибут распознается как идентификатор типа, и для схемы не требуется определять его «идентификатор» (см. http://www.w3.org/TR/xml-id/). Так что, если у вас есть какие-либо атрибуты id
в ваших документах DocBook 5, изменитеих на xml:id
.
Тем не менее, вы также должны убедиться, что синтаксический анализатор XML поддерживает xml:id
. Кажется, здесь отсутствует Xerces, поэтому он все еще может не работать для вас (см. https://issues.apache.org/jira/browse/XERCESJ-1113).
Если есть проблемы, вы можете попробовать использовать DocBook 5 DTD (да, есть DTD, хотя нормативная схема написана в RELAX NG). Этот DTD объявляет xml:id
дляиметь тип ID.