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

RE: Finding the ID attribute of an XPath from XMLSchem

Subject: RE: Finding the ID attribute of an XPath from XMLSchema
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 21 Jul 2007 19:42:23 +0100
RE:  Finding the ID attribute of an XPath from XMLSchem
Given a node $n, you can find the value of its ID attribute if it has one
using

$n/@*[id(.) is $n]

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: v vijith [mailto:vvijith@xxxxxxxxx] 
> Sent: 21 July 2007 19:16
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Finding the ID attribute of an XPath from XMLSchema
> 
> Below is a snippet from the XMLSchema
> 
> <xs:complexType name="nameType">
> 		<xs:sequence>
> 			<xs:element minOccurs="0" ref="desig"/>
> 		</xs:sequence>
> 		<xs:attribute ref="dest" use="required"/>
> 		<xs:attribute ref="id"/>
> 		<xs:attribute ref="garageid"/>
> 		<xs:attributeGroup ref="xlink:XLINKATT1"/>
> 	</xs:complexType>
> <xs:attribute name="id" type="xs:ID"/>
> 
> this means that in the XML, the nameType node can be 
> identified by the id attribute as xs:attribute name=id is 
> mapped to XS:ID.
> 
> Likewise there can be many nodes in the XML that has ID 
> associated to it.
> 
> <xml>
> <root>
> <somenode>
> <nameType id="2" attrib2="34">text</nameType> <nameType 
> id="3" attrib2="34">text</nameType> <nameType id="4" 
> attrib2="34">text</nameType> </somenode> <anothernode 
> attrib5="55"/> </root>
> 
> 
> In the XML, I perform some kind of XQuery and I get the 
> output as root/somenode/anothernode/nameType.
> Once I get this node, I should be able to find if there is an 
> ID attribute defined for this node in the XSD.
> In the above case, the id attribute in the nameType tag is 
> the attribute as per the XML Schema.
> 
> So I need the output as id for the xpath 
> root/somenode/anothernode/nameType
> 
> Hope I have explained it better!
> 
> Well what I thought was this way as a solution 1. Parse the 
> XMLSchema 2. Make a map of XPath as key and the id as attribute.
> 3. Once I get the xpath from xquery, check the map to find 
> the id 4. But parsing XMLSchema and mapping is not that simple either
> 
> Thanks
> Vijith
> 
> On 7/21/07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > > I have an XML which is associated to an XMLSchema. Once I 
> perform an 
> > > XQuery on the XML I get a selected set of XPaths (Im 
> using our own 
> > > functions).
> > >
> > > For each XPath I need to know what is the ID attribute 
> for the XPath.
> > > I know that in XMLSchema there is an XS:ID Attribute. I 
> would like 
> > > to know if there is a way to find the ID associated from the 
> > > XMLSchema for an XPath in the XML.
> > >
> > > Did I confuse everyone?
> >
> > You certainly confused me. Show us your source document and tell us 
> > what you want your output to look like.
> >
> > Michael Kay
> > http://www.saxonica.com/

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.