Re: Parameterized entities?
David Carlisle <[email protected]>
| Newsgroups | gmane.text.xml.devel |
|---|---|
| Message-ID | <CAEW6iOiUd2ce5=Lf5XqCUyrTh24gYrPDfPdMGxnjHpmQgiakmQ@mail.gmail.com> |
Basically no, XML entities can not do that. More generally if you parameterize using xslt/xpath the stylesheet can be aware of that structure whereas entities are a simple pre-filter by the xml parser. Something like <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="http://www.w3.org/2005/xpath-functions/map" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0"> <xsl:variable name="files" as="map(xs:string,document-node())"> <xsl:map> <xsl:for-each select="'arpt','nav','trm'"> <xsl:map-entry key="." select="doc(concat(.,'.xml'))"/> </xsl:for-each> </xsl:map> </xsl:variable> <xsl:template name="main"> <xsl:sequence select="'arpt is: ', $files ? arpt"/> <xsl:sequence select="'nav is: ', $files ? nav"/> <xsl:sequence select="'trm is: ', $files ? trm"/> </xsl:template> </xsl:stylesheet> Produces $ saxon -it:main en.xsl <?xml version="1.0" encoding="UTF-8"?>arpt is: <a/>nav is: <n/>trm is: <t/> given suitable input xml files On Thu, 16 Jun 2022 at 11:33, Roger L Costello <[email protected]> wrote: > Hi Folks, > > Is there any way to express a parameterized ENTITY? > > Example: I'd like to write something like this: > > <!DOCTYPE xsl:stylesheet [ > <!ENTITY file(f) "<xsl:variable name=f select='doc(f)'/>"> > ]> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > &file('ARPT.XML'); > &file('NAV.XML'); > &file('TRM.XML'); > </xsl:stylesheet> > > And have the XML parser perform the entity substitutions to generate this: > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:variable name='ARPT.XML' select="doc('ARPT.XML')"/> > <xsl:variable name='NAV.XML' select="doc('NAV.XML')"/> > <xsl:variable name='TRM.XML' select="doc('TRM.XML')"/> > </xsl:stylesheet> > > Is there any way to do something like this? > > /Roger > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: [email protected] > subscribe: [email protected] > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php > >