[Home] [By Thread] [By Date] [Recent Entries]

  • From: David Carlisle <d.p.carlisle@g...>
  • To: Roger L Costello <costello@m...>
  • Date: Thu, 16 Jun 2022 12:13:13 +0100

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 <costello@m...> 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: xml-dev-unsubscribe@l...
subscribe: xml-dev-subscribe@l...
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member