XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Paul JeffreySubject: cant get namespace declaration in root node
Author: Paul Jeffrey
Date: 27 Mar 2009 09:25 AM
Hi, I've been struggling to get the namespace declaration into the root element of a document ive done some transformations on, the XSL is as follows:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>

<xsl:template match="/*" >
<xsl:if test="dest">
<xsl:copy >
<TX xmlns="http://www.mynamespace.com">
<Destination >
<xsl:value-of select="dest"/>
</Destination>
<Method>TCP</Method>
</TX>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>

<xsl:template match="*" >
<xsl:element name="{local-name()}" namespace="http://www.mynamespace.com">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>

<xsl:template match="dest" />
</xsl:stylesheet>

The only way Ive found so far is to have the namespace appear in every child node but not the route... how would I go about doing this? Your help would be much appreciated, thanks

Postnext
John BamptonSubject: cant get namespace declaration in root node
Author: John Bampton
Date: 30 Mar 2009 09:47 AM
post your sample input xml and sample output xml so that we can help you.

Postnext
Paul JeffreySubject: cant get namespace declaration in root node
Author: Paul Jeffrey
Date: 30 Mar 2009 09:59 AM
Thanks for the reply, here is the input

<ProjectX>
<Agent_Class>xNETports</Agent_Class>
<ESMTool>NSM31</ESMTool>
<MD>XDEMO1</MD>
<Agent_Instance>xECSMACDportInst</Agent_Instance>
<Server>xdemo1</Server>
<Instance_Detail>fred</Instance_Detail>
<Header>X-CALL</Header>
<ResClass>Windows2000</ResClass>
<Date>03/11/2005</Date>
<Time>11:12:23</Time>
<State>repaired</State>
<dest>127.0.0.1</dest>
<UserData>AMD PCNET Family Ethernet Adapter</UserData>
<Client>ACME</Client>
<Source>NSMv556</Source>
</ProjectX>

this is my output at the moment:
<?xml version="1.0" encoding="iso-8859-1"?>
<ProjectX>
<TX xmlns="http://www.mynamespace.com">
<Destination>127.0.0.1</Destination>
<Method>TCP</Method>
</TX>
<ns0:Agent_Class xmlns:ns0="http://www.mynamespace.com">xNETports</ns0:Agent_Class>
<ns1:ESMTool xmlns:ns1="http://www.mynamespace.com">NSM31</ns1:ESMTool>
<ns2:MD xmlns:ns2="http://www.mynamespace.com">XDEMO1</ns2:MD>
<ns3:Agent_Instance xmlns:ns3="http://www.mynamespace.com">xECSMACDportInst</ns3:Agent_Instance>
<ns4:Server xmlns:ns4="http://www.mynamespace.com">xdemo1</ns4:Server>
<ns5:Instance_Detail xmlns:ns5="http://www.mynamespace.com">fred</ns5:Instance_Detail>
<ns6:Header xmlns:ns6="http://www.mynamespace.com">X-CALL</ns6:Header>
<ns7:ResClass xmlns:ns7="http://www.mynamespace.com">Windows2000</ns7:ResClass>
<ns8:Date xmlns:ns8="http://www.mynamespace.com">03/11/2005</ns8:Date>
<ns9:Time xmlns:ns9="http://www.mynamespace.com">11:12:23</ns9:Time>
<ns10:State xmlns:ns10="http://www.mynamespace.com">repaired</ns10:State>
<ns11:UserData xmlns:ns11="http://www.mynamespace.com">AMD PCNET Family Ethernet Adapter</ns11:UserData>
<ns12:Client xmlns:ns12="http://www.mynamespace.com">ACME</ns12:Client>
<ns13:Source xmlns:ns13="http://www.mynamespace.com">NSMv556</ns13:Source>
</ProjectX>

and here is the desired output:
<?xml version="1.0" encoding="iso-8859-1"?>
<ProjectX xmlns="http://www.mynamespace.com">
<TX>
<Destination>127.0.0.1</Destination>
<Method>TCP</Method>
</TX>
<Agent_Class>xNETports</Agent_Class>
<ESMTool>NSM31</ESMTool>
<MD>XDEMO1</MD>
<Agent_Instance>xECSMACDportInst</Agent_Instance>
<Server>xdemo1</Server>
<Instance_Detail>fred</Instance_Detail>
<Header>X-CALL</Header>
<ResClass>Windows2000</ResClass>
<Date>03/11/2005</Date>
<Time>11:12:23</Time>
<State>repaired</State>
<UserData>AMD PCNET Family Ethernet Adapter</UserData>
<Client>ACME</Client>
<Source>NSMv556</Source>
</ProjectX>

Postnext
John BamptonSubject: cant get namespace declaration in root node
Author: John Bampton
Date: 30 Mar 2009 11:54 AM
Originally Posted: 30 Mar 2009 11:53 AM
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="xml" indent="yes"></xsl:output>
<xsl:template match="ProjectX">
<ProjectX xmlns="http://www.mynamespace.com">
<xsl:if test="dest">
<TX>
<Destination >
<xsl:value-of select="dest"/>
</Destination>
<Method>TCP</Method>
</TX>
<xsl:apply-templates select="@*|node()"/>
</xsl:if>
</ProjectX>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}" namespace="http://www.mynamespace.com">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="dest" />
</xsl:stylesheet>

Cheers, John Bampton.

Posttop
Paul JeffreySubject: cant get namespace declaration in root node
Author: Paul Jeffrey
Date: 30 Mar 2009 03:30 PM
Thanks for the reply John, I did forget to mention that the root element name does change though, 'spose that would've helped, but I did get a reply from the other stylus forum that worked though. Thanks for help, appreciate it

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.