Hi, Ive just joined this mailing list and I have a question regarding XPath and namespaces which I am trying to achive through a Java class. Below, I have included the XML docuement in my database which I am trying to query. Basically there are many namespaces declared in the root node, and I was wondering how the XPathQueryServive interface can handle this.
The XPath: ---------------- //mets[ /mets/metsHdr/agent/name='Gul Akbar' ] ---------------- However this returns no results. The Java part (ive tried with and without setNamespaces - both returning no results). Later I want to try getting the tags that have ETOC namespace (see below). ---------------- XPathQueryService service = (XPathQueryService) col.getService ("XPathQueryService", "1.0"); service.setNamespace("xmlns","http://www.loc.gov/METS/"); service.setNamespace("xmlns:xlink","http://www.w3.org/TR/xlink"); service.setNamespace("xmlns:DC","http://purl.org/dc/elements/1.1/"); service.setNamespace ("xmlns:ETOC","http://localhost:8080/Project/xsd/etoc.xsd"); service.setNamespace("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); service.setNamespace("xsi:schemaLocation","http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd http://purl.org/dc/elements/1.1/ http://dublincore.org/schemas/xmls/simpledc20021212.xsd"); System.out.println("xmlns: "+ service.getNamespace("xmlns")); System.out.println("xlink: "+ service.getNamespace("xlink")); System.out.println("DC: "+ service.getNamespace("DC")); System.out.println("ETOC: "+ service.getNamespace("ETOC")); System.out.println("xsi: "+ service.getNamespace("xsi")); System.out.println("schemaLocation: "+ service.getNamespace("schemaLocation")); ResourceSet resultSet = service.query(xpath); ResourceIterator results = resultSet.getIterator(); ---------------- The record in question. ---------------- <?xml version="1.0"?> <mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:DC="http://purl.org/dc/elements/1.1/" xmlns:ETOC="http://localhost:8080/Project/xsd/etoc.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd http://purl.org/dc/elements/1.1/ http://dublincore.org/schemas/xmls/simpledc20021212.xsd"> <metsHdr> <agent ROLE="CREATOR" TYPE="INDIVIDUAL"> <name>Gul Akbar</name> </agent> </metsHdr> <dmdSec ID="ART_DMDID_DC"> <mdWrap MDTYPE="DC"> <xmlData> <DC:identifier>RN087521709</DC:identifier> </xmlData> </mdWrap> </dmdSec> <dmdSec ID="ART_DMDID_ETOC"> <mdWrap MDTYPE="OTHER" OTHERMDTYPE="ETOC"> <xmlData> <ETOC:ATI>BRV</ETOC:ATI> <ETOC:ID>RN087521709</ETOC:ID> <ETOC:ISSUE>2000; VOL 9; PART 3</ETOC:ISSUE> <ETOC:LANG>E</ETOC:LANG> <ETOC:PAGE>189-200</ETOC:PAGE> <ETOC:TEXT>Book review/viewpoint on Ian Angell's book- `The New Barbarian Manifesto: How to Survive in the Information Age' </ETOC:TEXT> </xmlData> </mdWrap> </dmdSec> <amdSec> <rightsMD ID="ART_ADMID1"> <mdWrap MDTYPE="DC"> <xmlData> <DC:rights>Copyright is owned by the publisher</DC:rights> </xmlData> </mdWrap> </rightsMD> </amdSec> <structMap> <div TYPE="ARTICLE" DMDID="ART_DMDID_ETOC ART_DMDID_DC" ADMID="ART_ADMID1"> <mptr LOCTYPE="URN" xlink:type="simple" xlink:href="RN087521709.xml" /> </div> </structMap> </mets> ---------------- I have used XML Spy 5 and used the XPath creator to test the above XPath, and that seems to be picking it up. Im definately doing something wrong in the Java, as far as I know. Ive attached the record and the Java class. Can anyone help me? Thanks in advance. Gul Akbar ------------------------------------------------- This mail sent through IMP: webmail.brad.ac.uk
<?xml version="1.0"?> <mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:DC="http://purl.org/dc/elements/1.1/" xmlns:ETOC="http://localhost:8080/Project/xsd/etoc.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd http://purl.org/dc/elements/1.1/http://dublincore.org/schemas/xmls/simpledc20021212.xsd"> <metsHdr> <agent ROLE="CREATOR" TYPE="INDIVIDUAL"> <name>Gul Akbar</name> </agent> </metsHdr> <dmdSec ID="ART_DMDID_DC"> <mdWrap MDTYPE="DC"> <xmlData> <DC:identifier>RN087521709</DC:identifier> </xmlData> </mdWrap> </dmdSec> <dmdSec ID="ART_DMDID_ETOC"> <mdWrap MDTYPE="OTHER" OTHERMDTYPE="ETOC"> <xmlData> <ETOC:ATI>BRV</ETOC:ATI> <ETOC:ID>RN087521709</ETOC:ID> <ETOC:ISSUE>2000; VOL 9; PART 3</ETOC:ISSUE> <ETOC:LANG>E</ETOC:LANG> <ETOC:PAGE>189-200</ETOC:PAGE> <ETOC:TEXT>Book review/viewpoint on Ian Angell's book- `The New Barbarian! Manifesto: How to Survive in the Information Age'</ETOC:TEXT> </xmlData> </mdWrap> </dmdSec> <amdSec> <rightsMD ID="ART_ADMID1"> <mdWrap MDTYPE="DC"> <xmlData> <DC:rights>Copyright is owned by the publisher</DC:rights> </xmlData> </mdWrap> </rightsMD> </amdSec> <structMap> <div TYPE="ARTICLE" DMDID="ART_DMDID_ETOC ART_DMDID_DC" ADMID="ART_ADMID1"> <mptr LOCTYPE="URN" xlink:type="simple" xlink:href="RN087521709.xml" /> </div> </structMap></mets>
XMLDatabase.java
Description: Binary data