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&apos;s book- `The New 
Barbarian Manifesto: How to Survive in the Information Age&apos;
    </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&apos;s book- `The New Barbarian!
 Manifesto: How to Survive in the Information Age&apos;</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>

Attachment: XMLDatabase.java
Description: Binary data

Reply via email to