You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2004/11/04 22:53:30 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/dom RangeImpl.java

mrglavas    2004/11/04 13:53:30

  Modified:    java/src/org/apache/xerces/dom RangeImpl.java
  Log:
  DOM Level 3 specifies an attribute called strictErrorChecking [1] which when set to false
  allows an implementation to not test every possible error case. Reducing the amount
  of checking performed when strictErrorChecking is false. This patch is thanks to
  Naela Nissar.
  
  [1] http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Document3-strictErrorChecking
  
  Revision  Changes    Path
  1.37      +194 -171  xml-xerces/java/src/org/apache/xerces/dom/RangeImpl.java
  
  Index: RangeImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/RangeImpl.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- RangeImpl.java	5 Oct 2004 17:12:51 -0000	1.36
  +++ RangeImpl.java	4 Nov 2004 21:53:30 -0000	1.37
  @@ -155,22 +155,23 @@
       public void setStart(Node refNode, int offset)
                            throws RangeException, DOMException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !isLegalContainer(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if ( fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !isLegalContainer(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
  -
           
           checkIndex(refNode, offset);
           
  @@ -191,22 +192,24 @@
       public void setEnd(Node refNode, int offset)
                          throws RangeException, DOMException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !isLegalContainer(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !isLegalContainer(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
  -        
  +    	
           checkIndex(refNode, offset);
           
           fEndContainer = refNode;
  @@ -226,23 +229,26 @@
       public void setStartBefore(Node refNode) 
           throws RangeException 
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !hasLegalRootContainer(refNode) ||
  -            !isLegalContainedNode(refNode) )
  -        {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !hasLegalRootContainer(refNode) ||
  +                    !isLegalContainedNode(refNode) )
  +            {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
  +    	
           fStartContainer = refNode.getParentNode();
           int i = 0;
           for (Node n = refNode; n!=null; n = n.getPreviousSibling()) {
  @@ -264,21 +270,23 @@
       public void setStartAfter(Node refNode)
           throws RangeException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !hasLegalRootContainer(refNode) || 
  -            !isLegalContainedNode(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !hasLegalRootContainer(refNode) || 
  +                    !isLegalContainedNode(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           fStartContainer = refNode.getParentNode();
           int i = 0;
  @@ -301,21 +309,23 @@
       public void setEndBefore(Node refNode)
           throws RangeException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !hasLegalRootContainer(refNode) ||
  -            !isLegalContainedNode(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !hasLegalRootContainer(refNode) ||
  +                    !isLegalContainedNode(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           fEndContainer = refNode.getParentNode();
           int i = 0;
  @@ -338,21 +348,23 @@
       public void setEndAfter(Node refNode)
           throws RangeException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !hasLegalRootContainer(refNode) ||
  -            !isLegalContainedNode(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if( fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !hasLegalRootContainer(refNode) ||
  +                    !isLegalContainedNode(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           fEndContainer = refNode.getParentNode();
           int i = 0;
  @@ -392,21 +404,23 @@
       public void selectNode(Node refNode)
           throws RangeException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !isLegalContainer( refNode.getParentNode() ) ||
  -            !isLegalContainedNode( refNode ) ) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !isLegalContainer( refNode.getParentNode() ) ||
  +                    !isLegalContainedNode( refNode ) ) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           Node parent = refNode.getParentNode();
           if (parent != null ) // REVIST: what to do if it IS null?
  @@ -425,20 +439,22 @@
       public void selectNodeContents(Node refNode)
           throws RangeException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -        }
  -        if ( !isLegalContainer(refNode)) {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
  -        if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  -            throw new DOMException(
  -                DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if( fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if ( !isLegalContainer(refNode)) {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
  +            if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
  +                throw new DOMException(
  +                        DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           fStartContainer = refNode;
           fEndContainer = refNode;
  @@ -459,20 +475,22 @@
       public short compareBoundaryPoints(short how, Range sourceRange)
           throws DOMException
       {
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -    	}
  -        // WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same Document or DocumentFragment.  
  -    	if ((fDocument != sourceRange.getStartContainer().getOwnerDocument()
  -                && fDocument != sourceRange.getStartContainer() 
  -                && sourceRange.getStartContainer() != null)
  -                || (fDocument != sourceRange.getEndContainer().getOwnerDocument()
  -                        && fDocument != sourceRange.getEndContainer() 
  -                        && sourceRange.getStartContainer() != null)) {
  -            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage( DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +        if (fDocument.errorChecking) {
  +            if( fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            // WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same Document or DocumentFragment.  
  +            if ((fDocument != sourceRange.getStartContainer().getOwnerDocument()
  +                    && fDocument != sourceRange.getStartContainer() 
  +                    && sourceRange.getStartContainer() != null)
  +                    || (fDocument != sourceRange.getEndContainer().getOwnerDocument()
  +                            && fDocument != sourceRange.getEndContainer() 
  +                            && sourceRange.getStartContainer() != null)) {
  +                throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
  +                        DOMMessageFormatter.formatMessage( DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +            }
           }
           
           Node endPointA;
  @@ -601,27 +619,30 @@
           throws DOMException, RangeException
       {
       	if ( newNode == null ) return; //throw exception?
  -        
  -        if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +    	
  +    	int type = newNode.getNodeType();
  +    	
  +    	if (fDocument.errorChecking) {
  +    	    if (fDetach) {
  +    	        throw new DOMException(
  +    	                DOMException.INVALID_STATE_ERR, 
  +    	                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +    	    }
  +    	    if ( fDocument != newNode.getOwnerDocument() ) {
  +    	        throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
  +    	                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  +    	    }
  +    	    
  +    	    if (type == Node.ATTRIBUTE_NODE
  +    	            || type == Node.ENTITY_NODE
  +    	            || type == Node.NOTATION_NODE
  +    	            || type == Node.DOCUMENT_NODE)
  +    	    {
  +    	        throw new RangeExceptionImpl(
  +    	                RangeException.INVALID_NODE_TYPE_ERR, 
  +    	                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +    	    }
       	}
  -        if ( fDocument != newNode.getOwnerDocument() ) {
  -            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
  -        }
  -       
  -        int type = newNode.getNodeType();
  -        if (type == Node.ATTRIBUTE_NODE
  -            || type == Node.ENTITY_NODE
  -            || type == Node.NOTATION_NODE
  -            || type == Node.DOCUMENT_NODE)
  -        {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  -        }
           Node cloneCurrent;
           Node current;
           int currentChildren = 0;
  @@ -691,23 +712,25 @@
           throws DOMException, RangeException
       {
           if (newParent==null) return;
  -        
  -    	if( fDetach) {
  -    		throw new DOMException(
  -    		DOMException.INVALID_STATE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  -    	}
           int type = newParent.getNodeType();
  -        if (type == Node.ATTRIBUTE_NODE
  -            || type == Node.ENTITY_NODE
  -            || type == Node.NOTATION_NODE
  -            || type == Node.DOCUMENT_TYPE_NODE
  -            || type == Node.DOCUMENT_NODE
  -            || type == Node.DOCUMENT_FRAGMENT_NODE)
  -        {
  -    		throw new RangeExceptionImpl(
  -    		RangeException.INVALID_NODE_TYPE_ERR, 
  -                DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +        
  +        if (fDocument.errorChecking) {
  +            if (fDetach) {
  +                throw new DOMException(
  +                        DOMException.INVALID_STATE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_STATE_ERR", null));
  +            }
  +            if (type == Node.ATTRIBUTE_NODE
  +                    || type == Node.ENTITY_NODE
  +                    || type == Node.NOTATION_NODE
  +                    || type == Node.DOCUMENT_TYPE_NODE
  +                    || type == Node.DOCUMENT_NODE
  +                    || type == Node.DOCUMENT_FRAGMENT_NODE)
  +            {
  +                throw new RangeExceptionImpl(
  +                        RangeException.INVALID_NODE_TYPE_ERR, 
  +                        DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
  +            }
           }
           
           Node root = getCommonAncestorContainer();
  
  
  

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