[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
On 30/06/2010 19:51, dvint@xxxxxxxxx wrote:
Not that relevant to your qn but the currently supported version of those entities (after ISO handed over maintenance of them to W3C/me) are linked from
http://www.w3.org/TR/2010/REC-xml-entity-names-20100401/
which you can generate using <xsl:output doctype-system="local.dtd"/>
then you just haave to write local.dtd to look like (in total)
<!ENTITY % ISOEntities PUBLIC "ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML"
"http://www.s1000d.org/S1000D_3-0/ent/xml/ISOEntities">
%ISOEntities;
Note though that if you do this (or what you suggested) any xml parser using the file that you generate will (by default) need a network connection to that server (or to the w3c server if you use the current versions)
Perhaps it is validating the generated result file?
If the file is being generated by XSLT, unless you go to a lot of trouble with disable-output-escaping, it will nothave any entity references in it, so you should not need to define any entities, so why do you need to refer to these entity definitions?
David]
Re: [xsl] Generating an internal subset?
Subject: Re: [xsl] Generating an internal subset? From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 30 Jun 2010 22:06:09 +0100 |
On 30/06/2010 19:51, dvint@xxxxxxxxx wrote:
I need to create the following in the XML output:
<!DOCTYPE dmodule [ <!ENTITY % ISOEntities PUBLIC "ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML" "http://www.s1000d.org/S1000D_3-0/ent/xml/ISOEntities"> %ISOEntities; ]>
Not that relevant to your qn but the currently supported version of those entities (after ISO handed over maintenance of them to W3C/me) are linked from
http://www.w3.org/TR/2010/REC-xml-entity-names-20100401/
The solution I found was this:
<xsl:text disable-output-escaping="yes"> <![CDATA[ <!DOCTYPE dmodule [ <!ENTITY % ISOEntities PUBLIC "ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML" "http://www.s1000d.org/S1000D_3-0/ent/xml/ISOEntities"> %ISOEntities; ]> ]]> </xsl:text>
Just wondering if there is a better way to do this.
That's best you can do if you really need an internal subset. (using pure xslt, saxon has an extension to do this I believe) Better perhaps is use <!DOCTYPE dmodule SYSTEM "local.dtd">
which you can generate using <xsl:output doctype-system="local.dtd"/>
then you just haave to write local.dtd to look like (in total)
<!ENTITY % ISOEntities PUBLIC "ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML"
"http://www.s1000d.org/S1000D_3-0/ent/xml/ISOEntities">
%ISOEntities;
Note though that if you do this (or what you suggested) any xml parser using the file that you generate will (by default) need a network connection to that server (or to the w3c server if you use the current versions)
Also I had some interesting results while using StylusStudio. without this statement things would run in a flash, with it, it would take like a minute to run. Seems like it was trying to go retrieve this external entity. When running directly with Saxon I saw no difference in processing time.
Perhaps it is validating the generated result file?
..dan
If the file is being generated by XSLT, unless you go to a lot of trouble with disable-output-escaping, it will nothave any entity references in it, so you should not need to define any entities, so why do you need to refer to these entity definitions?
David]
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Generating an internal subset, dvint | Thread | Re: [xsl] Generating an internal su, dvint |
Re: [xsl] debugging document() call, Michael Kay | Date | Re: [xsl] Generating an internal su, dvint |
Month |