0

Xerces2.7.1とXalan2.7.0を使用して、断片化された/部分的なインクルードを含むDocbookドキュメントをPDFに変換しようとしました。

<xi:include href="./TestDocument.included.xml" xpointer="Section2"/>

これは、部分的なインクルードを使用するには、を使用してスキーマファイルへの解決可能なパスを提供する必要があることを理解するまで機能しませんでした<!DOCTYPE ..>

しかし、Docbook 5.0では、DOCTYPEの代わりに名前空間宣言を使用する必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
xml:lang="de" version="5.0" status="DRAFT" security="confidential"> 

docbookxi.rngをツールチェーンに提供するにはどうすればよいですか?

4

1 に答える 1

1

この場合に役立つ「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一意の識別子に使用されます。この属性は ID 型として認識され、その「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を使用してみてください(はい、規範スキーマが RELAX NG で書かれていても DTD はあります)。その DTDxml:idは型 ID であると宣言します。

于 2011-12-19T14:28:48.733 に答える