Subject:XPath to find occurences of a node in an XSD Author:Bob Chauvin Date:19 Jan 2006 01:03 AM Originally Posted: 19 Jan 2006 12:59 AM
Is there such a thing as using XPath to determine the existance of a node in an xsd file?
NOTE: In SS, right click "Copy XPath to Clipboard" delivers this, but i doesn't look specific to the named node "Body":
/*[local-name()='schema' and namespace-uri()='http://www.w3.org/2001/XMLSchema']/*[local-name()='element' and namespace-uri()='http://www.w3.org/2001/XMLSchema'][1]/*[local-name()='complexType' and namespace-uri()='http://www.w3.org/2001/XMLSchema'][1]/*[local-name()='sequence' and namespace-uri()='http://www.w3.org/2001/XMLSchema'][1]/*[local-name()='element' and namespace-uri()='http://www.w3.org/2001/XMLSchema'][4]
For example, what is the XPath to determine if Body is a valid node in the following xsd file:
Subject:XPath to find occurences of a node in an XSD Author:Tony Lavinio Date:19 Jan 2006 01:39 AM
You're right, the XPath expression is to the node that defines Body,
not to Body itself.
Body isn't a node in the XSD file; the XSD file describes a schema
that, when applied to another XML file, will determine (among other
things) if an element named Body exists in the correct location.
Are you trying to find out if any elements named 'Body' are defined
in the XSD? Or are you trying to find an XPath expression that you
can use against an XML file to find out if it has a 'Body' element
in the place specified by the XSD?
The former is not too hard but probably not too useful; the latter,
depending on the schema, can be very difficult.
Subject:XPath to find occurences of a node in an XSD Author:Bob Chauvin Date:19 Jan 2006 02:06 AM Originally Posted: 19 Jan 2006 01:44 AM
I'm trying to find out if any elements named 'Body' are defined<br>in the XSD?<br><br>May seem weird, but I want to make sure that while I'm building an xml via .net that I don't add nodes that aren't in the schema.<br><br>Probably trying to do it the hard way? Is there a better way?
Subject:XPath to find occurences of a node in an XSD Author:Bob Chauvin Date:19 Jan 2006 02:13 AM
It looks like the XPath copied to clipboard in the XSD is providing positional access to a node, by use of the [4] being the fourth node under the sequence node.
Is that expected? and can SS also provid XPath that uses node names?
Subject:XPath to find occurences of a node in an XSD Author:Bob Chauvin Date:19 Jan 2006 04:30 AM
And the answer is....
ls_XPathSearchString = "//*[local-name()='element'][@ref='my:" + ol_ItemProperty.Name + "']"
nl = xmlSchemaDoc.SelectSingleNode(ls_XPathSearchString)
If nl Is Nothing Then
' this node is not in the schema defined for our infopath form,
' so skip it.
Continue For
End If