XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Parameterized entities?

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@mitre.org> 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@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS