[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Matching attributes with namespace

Subject: Re: Matching attributes with namespace
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 03 Aug 2006 14:19:15 -0400
Re:  Matching attributes with namespace
Hi Spencer,

I'm not sure what you mean by the attributes on the act element getting jumbled. (Maybe I've been looking at the screen too long. :-) The only difference I see between your input and output is that the order of the attributes is different. While from the point of view of the instance-considered-as-text-file this reordering may constitute a jumbling, from the point of view of the instance-considered-as-XML-document, it doesn't, as attribute ordering is not considered to be semantically significant in XML, and no XML processor or parser is bound to respect it.

If this is the source of your troubles, you basically have three options:

1. Try different XSLT engines until you find one that happens to respect your attribute ordering, and then use that one. (Meanwhile document the requirement, as it's over and above simple XML and XSLT.)

2. Try providing a template in your stylesheet that explicitly forces the processing order of these attributes (oops: except one is a namespace declaration, ouch!), and see if that helps. It might or might not. Again, be aware that since your requirement for a particular attribute ordering is over and above XML semantics, if this works it's just a case of your being lucky.

3. Fix the other process(es) that expect a particular attribute ordering so they're actually XML-compliant.

I'd personally go for option 3, as both "correct" and most likely to make the headache go away permanently.

I hope that helps,
Wendell


At 02:08 PM 8/3/2006, you wrote:
Hi List,

Thanks in advance for the help. I have a very simple transformation
that I can't seem to get right. The following is a shortened example.

XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../../media/xslt_2.xsl"?>
<act xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../media/ActSchema.xsd"
index="96001_01">
 <title>This is the <insert>title</insert></title>
</act>


XSL


<?xml version='1.0'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:template match="/">
        <xsl:apply-templates/>
</xsl:template>

 <xsl:template match="node()">
      <xsl:copy>
           <xsl:copy-of select="@*" />
           <xsl:apply-templates select="node()" />
      </xsl:copy>
 </xsl:template>


<xsl:template match="insert"><xsl:apply-templates/></xsl:template>


</xsl:stylesheet>


So basically just stripping out the insert element. Everything else should stay the same. However my attributes on <act> get jumbled to:

OUTPUT

<?xml version='1.0' ?>
<?xml-stylesheet type="text/xsl" href="../../media/xslt_2.xsl"?>
<act index="96001_01"
xsi:noNamespaceSchemaLocation="../../media/ActSchema.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <title>This is the title</title>
</act>

and for whatever reason this is messing up other things in our
work-flow. Anyone have any ideas on how to make the <act> attributes
come out exactly as they are in the source document?

Thanks,

Spencer

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.