[oXygen-user] RE: Docbook 5.0 Relax Schema and Xpointer Resolution
George Cristian Bina
Fri Nov 11 08:17:42 CST 2005
We will look into this, however it is not an easy task.
To understand what happens here it is how the processing is performed.
Let's assume you have an XML document master.xml and a document from
which you want to include a fragment, fragment.xml.
The Relax NG validator acts as a SAX content handler placed after the
XML parser that parses the document.
The XML parser does not know about the Relax NG validator.
The XInclude processing is done inside the XML parser
So, when the XML parser parses master.xml it will already resolve the
XInclude element and will replace it with the actual included content.
This reach the Relax NG validator. In the parsing phase there is no
schema processing involved as the XML parser does not even know about a
schema processor. In order to have a fragment from fragment.xml included
you need to know what is an ID in fragment.xml and for that you need to
parse it against a schema (but that document may not be valid against
some schema or there may be no schema associated with it). In any case,
finding the IDs in the fragment.xml requires parsing it against a schema
from the XML parser which does not know about any schema.
Now, the possible solution here will be to forget about schema and rely
on the xml:id for determining what values represent IDs in the included
document. This I think is doable but again it is not a trivial task. I
will add this on our bugzilla and we will look into it.
As a workaround for the current situation you can place the content you
want to include in a separate file and include it both from the master
document and from the fragment document. For instance if you have a para
in the fragment.xml then you can place that in a new file, xinclude that
file in fragment.xml in the place the para used to be and xinclude it
also in the master xml where you included it using xpointer.
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
Ray Miller wrote:
>>> IDs are supported only when they are defined in DTDs. <<
> So how will the oXygen community cope with Docbook-rng schemas; surely
> oXygen has a plan other than to state nonsupport.
> Xinclude / XPointer is essential for many of us docbook users.
> Advice please.
> oXygen-user mailing list
More information about the oXygen-user