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:&#10;', $files ? arpt"/>
  <xsl:sequence select="'nav is:&#10;',  $files ? nav"/>
  <xsl:sequence select="'trm is:&#10;',  $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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.