[
Lists Home |
Date Index |
Thread Index
]
- To: xml-dev@lists.xml.org
- Subject: extrernal entities - part 2
- From: Rick Marshall <rjm@zenucom.com>
- Date: Thu, 10 Feb 2005 13:24:47 +1100
- Organization: Zenucom Pty Ltd
- User-agent: Mozilla Thunderbird 0.6 (X11/20040502)
<?xml version="1.0"?>
<!DOCTYPE label [
<!ELEMENT vpn EMPTY>
<!ATTLIST vpn code ENTITY #REQUIRED>
<!NOTATION VPN SYSTEM "/usr/local/app/shoeman/bin/vpn">
<!ENTITY codex SYSTEM "1234" NDATA VPN>
]>
<label_file><vpn code="codex" /></label_file>
ok, a bit more background here. i am trying to overcome a somewhat
classic "late-binding" problem.
we get requests to print labels. the request come as text files that are
converted to xml and stored. the text file has everything we need to
print the labels except for some local info (essentially our product
number). sometime between receiving the files and actually printing the
labels all the data bits are filled in and we do have the required
product number. this can be identified from a code supplied by the customer.
the code above is a simplified version just to illustrate the point.
when we produce the final output (zebra printer codes in this case) we
need to include our product code. so what i want to do is embed in the
xml a call to a function in our system that, when passed the customer
code, will return our product code.
everything i've read suggests that the above snippet should work
(assuming /usr/local/app/sheoman/bin/vpn is executable and returns
something).
and here is the simplified stylesheet:<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates match="label_file"/>
</xsl:template>
<xsl:template match="label_file">
<xsl:text>
XX</xsl:text>
<xsl:apply-templates match="vpn"/>
</xsl:template>
<xsl:template match="vpn">
<xsl:text>
YY </xsl:text>
<xsl:value-of select="@code"/>
<xsl:text> ZZ</xsl:text>
</xsl:template>
</xsl:stylesheet>
and the output:
XX
YY codex ZZ
as you can see the entity "codex" is not being replaced by the call to
/usr/local/...
i can devise alternatives, but they would not be xml solutions and that
has other problems downstream.
ps if this is the correc tsolution then it is a good reason to hang on
to dtds.
rick
begin:vcard
fn:Rick Marshall
n:Marshall;Rick
email;internet:rjm@zenucom.com
tel;cell:+61 411 287 530
x-mozilla-html:TRUE
version:2.1
end:vcard
|