Hi 
When using xalan to transform an xml which has one of its namespace
declaration as xmlns:z="#RowsetSchema" using an xsl which has a
corresponding name space declaration as 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">

I get the error :
javax.xml.transform.TransformerException: Extra illegal tokens:
'#RowsetSchema',  ':', 'row', '/', '@', 'MESSAGE_TYPE', '=', ''UTILTS
E29''

Surprisingly this works fine with saxon and other parsers. 
Snippets of my XML and XSL's

<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<xml>
        <s:Schema id="RowsetSchema">
                s:ElementType name="row" content="eltOnly">
                        <s:AttributeType name="MESSAGE_TYPE"
rs:number="1" rs:nullable="true" rs:writeunknown="true">
                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="10" rs:fixedlength="true"/>
                        </s:AttributeType>....
        </s:Schema>
        <rs:data>
        <z:row MESSAGE_TYPE="UTILTS E29" MESSAGE_NUMBER="3000"
MESSAGE_DATE_TIME="2004-02-04T23:09:08"
BALANCE_SUPPLIER_EAN="12" BALANCE_RESPONSIBLE_PARTY_EAN="Grid1"
GRID_AREA_EAN="8716959259711"
METERING_PERIOD_FROM="2002-12-24T13:45:00"
METERING_PERIOD_TO="2002-12-25T13:45:00" ACTIVE_ENERGRY="E"
REASON="RECONCILIATION" SETTLEMENT_METHOD="profiled"
PERIOD_START="2002-12-24T13:45:00" PERIOD_END="2003-01- 24T13:45:00"
VOLUME="101" VOLUME_TYPE="Z01" TIME_FRAME="E10" TIME_RESOLUTION="15"
MEASUREMENT_UNIT="KWH"/>
        </z:row>
        
</xml>

My XSL
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<xsl:output omit-xml-declaration="no" indent="yes" encoding="ISO-8859-1"
version="1.0"/> <xsl:template
match="xml">................</xsl:template></xsl:stylesheet>

If I remove the # from #RowsetSchema everything works fine.
The input XML is generated by MSXML. 
What's the workaround for this? 

-Dev

Reply via email to