[oXygen-user] RE: Docbook 5.0 Relax Schema and Xpointer Resolution
George Cristian Bina
Wed Nov 16 05:12:27 CST 2005
Just to update also the oxygen-user list with the latest developments on
support for xml:id IDs for XInclude/XPointer.
I logged an issue and a patch with this on Xerces Jira:
http://issues.apache.org/jira/browse/XERCESJ-1113
We made a build starting from Xerces 2.7.1 and applying that patch:
http://www.oxygenxml.com/update/xmlid/LICENSE
http://www.oxygenxml.com/update/xmlid/xercesImpl.jar
http://www.oxygenxml.com/update/xmlid/xml-apis.jar
To get this running in oXygen 6.2 copy the above jars over the ones from
[oXygen]/lib folder.
Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
George Cristian Bina wrote:
> Hi Ray,
>
> 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.
>
> Best Regards,
> George
> ---------------------------------------------------------------------
> George Cristian Bina
> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> http://www.oxygenxml.com
>
>
> 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.
>>
>> Ray
>>
>>
>> _______________________________________________
>> oXygen-user mailing list
>>
>> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
> _______________________________________________
> oXygen-user mailing list
>
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
More information about the oXygen-user
mailing list