diff options
Diffstat (limited to 'src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java')
-rw-r--r-- | src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java b/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java new file mode 100644 index 0000000..7395903 --- /dev/null +++ b/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java @@ -0,0 +1,136 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * $Id: DOM2Helper.java,v 1.1.4.1 2005/09/08 11:03:09 suresh_emailid Exp $ + */ +package com.sun.org.apache.xml.internal.serializer.utils; + +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import org.xml.sax.InputSource; + +/** + * This class provides a DOM level 2 "helper", which provides services currently + * not provided be the DOM standard. + * + * This class is a copy of the one in com.sun.org.apache.xml.internal.utils. + * It exists to cut the serializers dependancy on that package. + * + * The differences from the original class are: + * it doesn't extend DOMHelper, not depricated, + * dropped method isNodeAfter(Node node1, Node node2) + * dropped method parse(InputSource) + * dropped method supportSAX() + * dropped method setDocument(doc) + * dropped method checkNode(Node) + * dropped method getDocument() + * dropped method getElementByID(String id, Document doc) + * dropped method getParentOfNode(Node node) + * dropped field Document m_doc; + * made class non-public + * + * This class is not a public API, it is only public because it is + * used in com.sun.org.apache.xml.internal.serializer. + * + * @xsl.usage internal + */ +public final class DOM2Helper +{ + + /** + * Construct an instance. + */ + public DOM2Helper(){} + + /** + * Returns the local name of the given node, as defined by the + * XML Namespaces specification. This is prepared to handle documents + * built using DOM Level 1 methods by falling back upon explicitly + * parsing the node name. + * + * @param n Node to be examined + * + * @return String containing the local name, or null if the node + * was not assigned a Namespace. + */ + public String getLocalNameOfNode(Node n) + { + + String name = n.getLocalName(); + + return (null == name) ? getLocalNameOfNodeFallback(n) : name; + } + + /** + * Returns the local name of the given node. If the node's name begins + * with a namespace prefix, this is the part after the colon; otherwise + * it's the full node name. + * + * This method is copied from com.sun.org.apache.xml.internal.utils.DOMHelper + * + * @param n the node to be examined. + * + * @return String containing the Local Name + */ + private String getLocalNameOfNodeFallback(Node n) + { + + String qname = n.getNodeName(); + int index = qname.indexOf(':'); + + return (index < 0) ? qname : qname.substring(index + 1); + } + + /** + * Returns the Namespace Name (Namespace URI) for the given node. + * In a Level 2 DOM, you can ask the node itself. Note, however, that + * doing so conflicts with our decision in getLocalNameOfNode not + * to trust the that the DOM was indeed created using the Level 2 + * methods. If Level 1 methods were used, these two functions will + * disagree with each other. + * <p> + * TODO: Reconcile with getLocalNameOfNode. + * + * @param n Node to be examined + * + * @return String containing the Namespace URI bound to this DOM node + * at the time the Node was created. + */ + public String getNamespaceOfNode(Node n) + { + return n.getNamespaceURI(); + } + + /** Field m_useDOM2getNamespaceURI is a compile-time flag which + * gates some of the parser options used to build a DOM -- but + * that code is commented out at this time and nobody else + * references it, so I've commented this out as well. */ + //private boolean m_useDOM2getNamespaceURI = false; +} |