Altova Mailing List Archives


RE: [xsl] Colon Error in Processing-Instruction Name

From: "Michael Kay" <mhk@--------->
To:
Date: 8/19/2004 7:24:00 AM
XSLT requires that the name in <xsl:processing-instruction> should be an
NCName (no-colon-name) in order to make it valid in namespace-aware-XML. 

So there is no way of generating the HTML you want to generate. You could
use d-o-e as David Carlisle suggests, or do some post-processing with a text
editor.

Michael Kay 

> -----Original Message-----
> From: Trevor Majic [mailto:majic87@xxxxxxxxxxx] 
> Sent: 18 August 2004 16:16
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Colon Error in Processing-Instruction Name
> 
> I have a processing-instruction that works in HTML, but when 
> I include it in 
> my XSL, I receive an error stating the name cannot include 
> colons (namespace 
> conflict).
> 
> This is the processing-instruction as it appears in the HTML file:
> 
> <?IS10744:arch name="linkone-enabled"
>      public-id="-//LinkOne//NOTATION AFDR ARCBASE Linkone enabled//EN"
>         auto=nArcAuto?>
> 
> 
> Obviously, when I try to add this as a processing-instruction 
> in XSL, I 
> receive an error message.  This is the XSL processing 
> instruction I used:
> 
> <xsl:processing-instruction name="IS10744:arch">
>      name="linkone-enabled"
>      public-id="-//LinkOne//NOTATION AFDR ARCBASE Linkone 
> enabled//EN" 
> auto=nArcAuto
> </xsl:processing-instruction>
> 
> 
> Since the name can't include a colon (IS10744:arch), an error 
> is generated.
> 
> I have found two suggested work-arounds:
> 
>      1. Replace the colon with a space or a dash.  This 
> however does not 
> work.  If I replace the colon in the HTML file, the page does 
> not display 
> correctly (it is missing the Linkone selection box).
> 
>      2. Turn off namespace.  I suspect there are some issues 
> with doing 
> that.  First off, I don't know how to do it.  Also, If I turn off the 
> namespace, will that turn off the namespace validation for the whole 
> document, or just for the data within the section where it is 
> turned-off.
> 
> NOTE: I may be incorrect in some of this, so feel free to 
> correct me if I am 
> wrong, or using wrong terminology.
> 
> I can't add the colon after the processing name (ie. 
> .....name=IS10744>:arch 
> ..... as the output will be <?IS10744 :arch.....
> 
> An error message is generated if I use an empty name (ie. 
> ....name="">IS10744:arch name....).  Plus, the output 
> wouldn't work in the 
> HTML document, as it would be <? IS10744 (space between ? and 
> IS10744).
> 
> I don't seem to be able to use a predefined general entity 
> (ie &#58) to 
> replace the colon.
> 
> 
> This is the HTML file which works:
> 
> <?IS10744:arch
>     name="linkone-enabled"
>     public-id="-//LinkOne//NOTATION AFDR ARCBASE Linkone enabled//EN"
>     auto=nArcAuto?>
> <html xmlns="http://www.w3.org/TR/REC-html40">
> 
> <table>
>   <tr linkone-enabled="entry">
>   <td linkone-enabled="field" le-name="Stock Code" 
> le-select="always">500100</td>
>   <td linkone-enabled="field" le-name="Part Number" 
> le-select="hide">WR151-12</td>
>   <td>3/4&quot; Wrench</td>
>   <td>ea</td>
>   </tr>
> </table>
> 
> 
> 
> 
> This is my XML:
> 
> <?xml version="1.0"?>
> <?xml:stylesheet type='text/xsl' href='StockCodesStylesheet.xsl'?>
> 
> <stockcodes>
>     <indivitems>
>             <groupcode>Bolts</groupcode>
>             <stockcode>0015236</stockcode>
>             <uoi>Ea</uoi>
> 
>         <supplier>
>                 <suppliername>ABC Supplies</suppliername>
> 
>               <supplieraddress>
>                       <supplierstreet>123 Maple Way</supplierstreet>
> 	      <suppliercity>Wpg</suppliercity>
> 	      <supplierpostal>R3J2E7</supplierpostal>
>               </supplieraddress>
>           </supplier>
> 
>             <stockdescriptions>
>                 <description1>Bolt</description1>
>                 <description2>1/2 inch</description2>
>             </stockdescriptions>
> 
>             <partnumber>12bbdgr531</partnumber>
> </indivitems>
> 
> 
> 
> This is the XSL:
> 
> <?xml version='1.0' encoding='UTF-8' ?>
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="html" indent="yes"/>
> 
> <xsl:template match="stockcodes">
> 
>     <xsl:processing-instruction 
> name="IS10744:arch)">name="linkone-enabled"
>         public-id="-//LinkOne//NOTATION AFDR ARCBASE Linkone 
> enabled//EN" 
> auto=nArcAuto
>     </xsl:processing-instruction>
> 
>          <table>
>              <xsl:for-each select="indivitems">
>              <tr linkone-enabled="entry">
>                   <td linkone-enabled="field" le-name="part-number" 
> le-select="always">233355</td>
>                   <td linkone-enabled="field" 
> le-name="Description"><xsl:value-of 
> select="stockdescriptions/description2"/></td>
>                   <td><xsl:value-of select="uoi"/></td>
> 	         </tr>
>               </xsl:for-each>
>           </table>
>     </xsl:template>
> </xsl:stylesheet>
> 
> 
> 
> What do I need to do to fix this?
> 
> Thank you,
> Trevor
> 
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today 
> - it's FREE! 
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

Disclaimer

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.