You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2008/12/15 01:39:44 UTC

[jira] Resolved: (WSCOMMONS-255) AXIOM DOM based org.w3c.dom.Element.getElementsByTagName and getElementsByTagNameNS do not funcion according to spec

     [ https://issues.apache.org/jira/browse/WSCOMMONS-255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen resolved WSCOMMONS-255.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: Axiom 1.2.8

This should now be fixed in trunk.

> AXIOM DOM based org.w3c.dom.Element.getElementsByTagName and getElementsByTagNameNS do not funcion according to spec
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-255
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-255
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: AXIOM
>            Reporter: Gennady Shumakher
>            Assignee: Andreas Veithen
>             Fix For: Axiom 1.2.8
>
>
> The w3c spec states:
> getElementsByTagName
>     Returns a NodeList of all the Elements with a given tag name in the order in which they would be encountered in a preorder traversal of the Document tree.
> It looks that current implementation of org.apache.axiom.om.impl.dom.ElementImpl looks only at the 1st level of children and not through the tree.
> Here is the code snippet
>                 //Instantiate and parse soap message with AXIOM DOM
> 		DocumentBuilderFactoryImpl.setDOOMRequired(true);
>                 Document doc =DocumentBuilderFactoryImpl.newInstance().newDocumentBuilder().parse(new FileInputStream(SOAP_EXAMPLE_XML));		
> 		nl = doc.getDocumentElement().getElementsByTagName("return");
> 		System.out.println("AXIOM DOM  XML Parser found " + nl.getLength() + " element(s)");	//AXIOM DOM  XML Parser found 0 element(s) 
> 				
> 		// Instantiate and parse document with xerces
> 		System.getProperties().setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
> 		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
> 		dbf.setNamespaceAware(true);
> 		doc = dbf.newDocumentBuilder().parse(new FileInputStream(SOAP_EXAMPLE_XML));
> 		nl = doc.getDocumentElement().getElementsByTagName("return");
> 		System.out.println("XERCES XML Parser found " + nl.getLength() + " element(s)"); // XERCES XML Parser found found 1 element(s)
> SOAP_EXAMPLE_XML.file:
> <soapenv:Envelope 
> 	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>   <xsd:startSessionResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>    <return xsi:type="xsd:string">sessionID</return>
>   </xsd:startSessionResponse>
>  </soapenv:Body>
> </soapenv:Envelope>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.