See below.
J.
Here is my Java code:
______________________________
// load XSD
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true); <----------------------
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
Document xsdDoc = docBuilder.parse("path to my xsd");
// eval XPath
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(new MyNamespaceContext());
System.out.println(xpath.evaluate("count(//xs:element)",
xsdDoc.getDocumentElement()));
______________________________
And finally implementation of NamespaceContext:
______________________________
public class MyNamespaceContext implements NamespaceContext {
public String getNamespaceURI(String prefix) {
if ("xs".equals(prefix)) {
return "http://www.w3.org/2001/XMLSchema";
} else if ("msdata".equals(prefix)) {
return "urn:schemas-microsoft-com:xml-msdata";
}
return XMLConstants.NULL_NS_URI;
}
public String getPrefix(String namespaceURI) {
if ("http://www.w3.org/2001/XMLSchema".equals(namespaceURI)) {
return "xs";
} else if
("urn:schemas-microsoft-com:xml-msdata".equals(namespaceURI)) {
return "msdata";
}
return XMLConstants.DEFAULT_NS_PREFIX;
}
public Iterator<String> getPrefixes(String namespaceURI) {
List<String> uris = new ArrayList<String>();
uris.add(getPrefix(namespaceURI));
return uris.iterator();
}
}
______________________________
Thanks in advance.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--
Jacek Radajewski
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--