Snažil som sa konvertovať dokumen- tov dokument s roztrieštenými alebo čiastočne zahrnutými do pdf pomocou Xerces 2.7.1 a Xalan 2.7.0.
<xi:include href="./TestDocument.included.xml" xpointer="Section2"/>
Toto nefungovalo, kým som nerozhodol, že na to, aby sa použil čiastočne, je potrebné poskytnúť riešiteľnú cestu k schemafile pomocou <!DOCTYPE ..>
.
Ale s aplikáciou Docbook 5.0 je potrebné použiť namiesto DOCTYPE vyhlásenia o priestore názvov.
<?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">
Ako môžem poskytnúť docbookxi.rng reťaze nástrojov?
odpovede:
1 pre odpoveď č. 1Neexistuje žiadny spôsob, ako "poskytnúť docbookxi.rng k nástrojovej reťaze", ktorá by v tomto prípade pomohla. Neexistuje ani štandardný spôsob, ako priradiť dokument XML so schémou RELAX NG xmlns="http://docbook.org/ns/docbook"
vyhlásenie o mennom priestore identifikuje dokument ako DocBook 5 (spolu s version
atribút), ale nehovorí nič o umiestnení schémy.
Linka ako táto,
<xi:include href="./TestDocument.included.xml" xpointer="Section2"/>
znamená: "zahrnúť časť TestDocument.included.xml
ktorý je identifikovaný prvkom, ktorý má atribút typu ID s hodnotou Section2
".
V dokumente DocBook 5, xml:id
sa používa pre jedinečné identifikátory. Tento atribút je rozpoznaný ako typ ID a schéma nie je potrebná na určenie jeho "ID-ness" (pozri http://www.w3.org/TR/xml-id/). Takže ak máte nejakéid
atribúty v dokumentoch DocBook 5, zmeňte ich na xml:id
.
Taktiež by ste sa mali uistiť, že syntaktický analyzátor XML podporuje xml:id
, Zdá sa, že Xerces tu chýba, takže by pre vás stále nefungovalo (pozri https://issues.apache.org/jira/browse/XERCESJ-1113).
Ak sa vyskytnú problémy, môžete sa pokúsiť použiť DocBook 5 DTD (áno, existuje DTD aj napriek tomu, že normatívna schéma je napísaná v RELAX NG). Toto vyhlásenie DTD xml:id
byť ID typu.