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

Re: NAMESPACES - Part 2 of (Moving an element to a new

Subject: Re: NAMESPACES - Part 2 of (Moving an element to a new location in the Result-tree)
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Sat, 10 Sep 2005 12:44:52 +0530
xmlns fn
The reason for the problems you are facing is, that the following
namespace declarations are meant to be declared in the stylesheet and
not in the source XML

xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes"

Regards,
Mukul

On 9/10/05, Graves, Jim (CONTR) <jim.graves@xxxxxxx> wrote:
>
> This is a follow-on question related to my earlier one about:
> "Moving an element to a new location in the Result-tree."
> (my new QUESTION is stated below) -- (And thanks for your prior help!!)
>
> Please Cc: my home e-mail, so I can see your reply from home this
> weekend?)
> 'swguild@xxxxxxxxxxxxxx'
>
> Essentially I have two version of input data one with and one without
> namespaces, so my XSLT works on the latter, not former (the namespaces
> are causing problems).
>
> My 'toy version' of the input data file works just fine w.r.t. its
> intent,
> namely creating a new file (containing the newly formed 'result-tree')
> in which the <INDIVIDUAL_ALIAS> elements have been 'herded down,' to
> their new home in the tree, (as I refer to moving my 'data elephants'
> sometimes) (;>}
> (Forgive my levity, but it's Friday night -- and I should be home by
> now).
>
> However, now I have to resolve why my XSLT, shown below, is processing
> differently on the files that only differ with respect to the presence
> or absence of namespaces: (I'm using XMLSpy version 2005 release 3 (for
> development/debugging), of Ent. Edn. and the (nearly latest) .NET XSLT
> 1.1, but not 2.0, (it's used for production) -- (BTW, how can I get XSLT
> 2.0 in there, if it's possible?)).
>
> As I see it, when debugging down through the code in XMLSpy, without the
> namespaces, everything flows perfectly and life is good, (:>}.
> Then, when I introduce the 'real data,' with namespaces and prefixes,
> etc, the XSLT process chooses to follow a different sequence; see data
> versions.
>
> Specifically, it avoids my template named "Transfer" (-- apparently
> disregarding the 'optional' priority value): (without the namespaces in
> the data, it uses this template and all is well).
>
> <xsl:template match="Transfer" priority="5.0">
>  <Transfer>
>  <IND>
>                  <xsl:apply-templates select="IND"/>
>  </IND>
> </Transfer>
>
>
> and then consumes the entire file with the 'node-eater' (via <xsl:copy):
>
>
> <xsl:template match="@*|node()" >
>           <xsl:copy>
>                  <xsl:apply-templates select="@*|node()"/>
>          </xsl:copy>
> </xsl:template>
>
>
> In this case, having the disastrous result of omitting my key template:
> (the 'Good Shepard template' ("IND") who herds my data elephants down
> the tree..)
>
> <xsl:template match="IND" priority="4.0">
>            <xsl:apply-templates
> select="*[not(self::INDIVIDUAL_ALIAS)]"/>
>            <xsl:apply-templates select="INDIVIDUAL_ALIAS" />
>
> </xsl:template>
>
> Without this execution, I fail to obtain my desired result and life is
> bad.
>
> MY QUESTION: since I need to have these (and several other
> namespaces/prefixes, such as: xmlns:ABC="http://www.abc.xyz.pdq/ABC" and
> several others (must haves)), so then, what can I do to mitigate the
> effect of their presence in the input data tree?
>
> This problem happens immediately, prior to when it gets to my first
> element, since it's not shown as highlighted in XMLSpy, if namespaces
> are present, yet if they are not present, then the tag is highlighted
> and all flows well).  (Something happening behind the scenes in the XSLT
> process (what?).
>
> Again:
>
> "<Transfer>" (is OK), however,
>
>
> "<Transfer xmlns:xs="http://www.w3.org/2001/XMLSchema" (is not OK; skips
> the special template, "IND").
>
>
>
> INPUT DATA
>
> Less Complex Input (without namespaces):
> <Transfer>
> <IND>
> <NAME_LAST>PEITER</NAME_LAST>
> <NAME_FIRST>ED</NAME_FIRST>
> <NAME_MIDDLE>WARECO</NAME_MIDDLE>
>
> <INDIVIDUAL_ALIAS>
> <IND_ALIAS_TYPE>UNKNOWN</IND_ALIAS_TYPE>
> <Name>DASTEFANO,ALEX</Name>
> </INDIVIDUAL_ALIAS>
>
> <INDIVIDUAL_ALIAS>
> <IND_ALIAS_TYPE>UNKNOWN</IND_ALIAS_TYPE>
> <Name>PURSA, NILLIAM, JR</Name>
> </INDIVIDUAL_ALIAS>
>
> <BIRTH_DATE>19510515</BIRTH_DATE>
> <GENDER>M</GENDER>
> <IND_HEIGHT>67"</IND_HEIGHT>
> <IND_WEIGHT>150</IND_WEIGHT>
> <EYE_COLOR>Brown</EYE_COLOR>
> <HAIR_COLOR>Brown</HAIR_COLOR>
>
> </IND>
> </Transfer>
>
>
> More Complex Input (with namespaces, causing problems):
>
> <Transfer
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
> xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
>
> <IND> NAME_LAST>PEITER</NAME_LAST>
> <NAME_FIRST>ED</NAME_FIRST>
> <NAME_MIDDLE>WARECO</NAME_MIDDLE>
>
> <INDIVIDUAL_ALIAS>
> <IND_ALIAS_TYPE>UNKNOWN</IND_ALIAS_TYPE>
> <Name>DASTEFANO,ALEX</Name>
> </INDIVIDUAL_ALIAS>
>
> <INDIVIDUAL_ALIAS>
> <IND_ALIAS_TYPE>UNKNOWN</IND_ALIAS_TYPE>
> <Name>PURSA, NILLIAM, JR</Name>
> </INDIVIDUAL_ALIAS>
>
> <BIRTH_DATE>19510515</BIRTH_DATE>
> <GENDER>M</GENDER>
> <IND_HEIGHT>67"</IND_HEIGHT>
> <IND_WEIGHT>150</IND_WEIGHT>
> <EYE_COLOR>Brown</EYE_COLOR>
> <HAIR_COLOR>Brown</HAIR_COLOR>
>
> </IND>
> </Transfer>
>
>
> XSLT:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
> <xsl:output version="1.0" method="xml" omit-xml-declaration="no"
> encoding="UTF-8" indent="yes"/>
>
> <xsl:strip-space elements="*"/>
>
> <xsl:template match="/">
>             <xsl:copy>
>                   <xsl:apply-templates select="*"/>
>                 </xsl:copy>
> </xsl:template>
>
> <xsl:template match="Transfer" priority="5.0">
>   <Transfer>
>     <IND>
>                  <xsl:apply-templates select="IND"/>
>     </IND>
>   </Transfer>
>
> </xsl:template>
>
> <xsl:template match="IND" priority="4.0">
>
>            <xsl:apply-templates
> select="*[not(self::INDIVIDUAL_ALIAS)]"/>
>            <xsl:apply-templates select="INDIVIDUAL_ALIAS" />
>
> </xsl:template>
>
>  <xsl:template match="@*|node()" >
>         <xsl:copy>
>                      <xsl:apply-templates select="@*|node()"/>
>               </xsl:copy>
>  </xsl:template>
>
> </xsl:stylesheet>

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.