You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by bu...@apache.org on 2002/08/13 15:15:33 UTC

DO NOT REPLY [Bug 11659] New: - Extra nodes generated after parsing with DOMASBuilder

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11659>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11659

Extra nodes generated after parsing with DOMASBuilder

           Summary: Extra nodes generated after parsing with DOMASBuilder
           Product: Xerces2-J
           Version: 2.0.2
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: Major
          Priority: Other
         Component: XML Schema Structures
        AssignedTo: xerces-j-dev@xml.apache.org
        ReportedBy: n.betteridge@syntactics.com
                CC: n.betteridge@syntactics.com


I'm not too sure if this is a bug.

I create a parser, read in the sample schema (personal-schema.xml) from
the distribution, then read in the data (personal.xml). When I traverse
the document, I get an extra text node per each element node.


DOMImplementationAS domImpl =
(DOMImplementationAS)ASDOMImplementationImpl.getDOMImplementation();
DOMASBuilder parser = domImpl.createDOMASBuilder(); 


xmlDocument = parser.parseURI(...xml);
Element rootXMLNode = xmlDocument.getDocumentElement();
dumpNode(rootXMLNode);

void dumpNode(Node node) {
    if (node.getNodeType() == Node.TEXT_NODE &&
!node.getNodeValue().equals(""))
        System.out.println(node.getNodeName() + " -> '" +
node.getNodeValue()+"'");
    else {
        System.out.println(node.getNodeName());
        NodeList childList = node.getChildNodes();
        int numChildren = childList.getLength();
        for(int i=0;i<numChildren;i++) {
            Node childNode = (Node)childList.item(i);
            dumpNode(childNode);
                    
        }
    }
}




Snip of data (personal.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE personnel SYSTEM "personal.dtd">
<personnel>

  <person id="Big.Boss">
    <name><family>Boss</family> <given>Big</given></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker
five.worker"/>
  </person>

  <person id="one.worker">
    <name><family>Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name><family>Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

---------


Gives .....

ELEMENT_NODE 
personnel
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Boss'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Big'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'chief@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'One'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'one@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Two'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'two@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Three'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'three@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Four'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'four@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Five'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'five@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
'

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org