xsl-list
[Top] [All Lists]

[xsl] retain/rebuild unparsed entities in internal subset

2008-04-22 04:34:44
Hi,

I have a large XML document that I want to split up in smaller documents
using xslt:

<!DOCTYPE root [
  <!NOTATION cgm PUBLIC 
    "-//USA-DOD//NOTATION Computer Graphics Metafile//EN"          >
  <!NOTATION ccitt4 PUBLIC 
    "-//USA-DOD//NOTATION CCITT Group4 Facsimile//EN"              >
   
        <!ENTITY image1 SYSTEM "image1.cgm" NDATA cgm>
        <!ENTITY image2 SYSTEM "image2.tiff" NDATA ccitt4>
]>
<root>
  <section>
    <img src="image1"/>
  </section>
  <section>
    <img src="image2"/>
  </section>
</root>

Each <section> should become a separate document. The splitting itself
is no problem, but the issue I have is that the internal subset is lost
when doing an xsl transformation.

Ideally I'd like to rebuild the internal subset for each of the
generated documents with only the <!ENTITY> items that are used in that
section.

So far I've found that I can use <xsl:text
disable-output-escaping="yes"/> with a CDATA section inside to output
the doctype declaration (or maybe I can use the saxon:doctype thing,
haven't looked at that yet). And I can get the location of the file
using the unparsed-entity-uri(..) xpath function. 

What I cannot access yet is the NDATA type (e.g: 'cgm') and the public
id associated with that type ("USA-DOD//NOTATION Computer Graphics
Metafile//EN")

Is there any way I can access the NDATA and NOTATION declarations using
xslt? I'm using xslt2 with saxon. Preferably I'd like to use a standard
way, but if that's not possible something that only works on saxon will
have to do.

Thanks,
Ewout

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>