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 "Gennady Shumakher (JIRA)" <ji...@apache.org> on 2007/09/19 15:39:43 UTC

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

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


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.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org


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

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen reassigned WSCOMMONS-255:
-----------------------------------------

    Assignee: Andreas Veithen

> 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
>
> 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.


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

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ 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.