Subject: Re: [xsl] Finding the ID attribute of an XPath from XMLSchema|
From: "v vijith" <vvijith@xxxxxxxxx>
Date: Sat, 21 Jul 2007 11:15:43 -0700
<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.
<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.
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
> 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/