| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef __com_sun_star_xml_dom_XNode_idl__ |
| #define __com_sun_star_xml_dom_XNode_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| #ifndef __com_sun_star_xml_dom_NodeType_idl__ |
| #include <com/sun/star/xml/dom/NodeType.idl> |
| #endif |
| #ifndef __com_sun_star_xml_dom_XNodeList_idl__ |
| #include <com/sun/star/xml/dom/XNodeList.idl> |
| #endif |
| #ifndef __com_sun_star_xml_dom_XNamedNodeMap_idl__ |
| #include <com/sun/star/xml/dom/XNamedNodeMap.idl> |
| #endif |
| |
| |
| module com { module sun { module star { module xml { module dom { |
| |
| interface XDocument; |
| |
| /** The primary dom datatype |
| |
| <p>The Node interface is the primary datatype for the entire Document Object Model. |
| It represents a single node in the document tree. While all objects implementing |
| the Node interface expose methods for dealing with children, not all objects |
| #implementing the Node interface may have children. For example, Text nodes may not |
| have children, and adding children to such nodes results in a DOMException being raised.</p> |
| |
| <p>The attributes nodeName, nodeValue and attributes are included as a mechanism to get at |
| node information without casting down to the specific derived interface. In cases where |
| there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue |
| for an Element or attributes for a Comment ), this returns null. Note that the specialized |
| interfaces may contain additional and more convenient mechanisms to get and set the relevant |
| information.</p> |
| |
| <p>The values of nodeName, nodeValue, and attributes vary according to the node type as follows: |
| <table align=left border=1> |
| <tr><th>Interface </th><th>nodeName </th><th>nodeValue </th><th>attributes</th></tr> |
| <tr><th>Attr </th><td>name of attribute </td><td>value of attribute </td><td>null</td></tr> |
| <tr><th>CDATASection </th><td>"#cdata-section" </td><td>content of the CDATA Section </td><td>null</td></tr> |
| <tr><th>Comment </th><td>"#comment" </td><td>content of the comment </td><td>null</td></tr> |
| <tr><th>Document </th><td>"#document" </td><td>null </td><td>null</td></tr> |
| <tr><th>DocumentFragment </th><td>"#document-fragment"</td><td>null </td><td>null</td></tr> |
| <tr><th>DocumentType </th><td>document type name </td><td>null </td><td>null</td></tr> |
| <tr><th>Element </th><td>tag name </td><td>null </td><td>NamedNodeMap</td></tr> |
| <tr><th>Entity </th><td>entity name </td><td>null </td><td>null</td></tr> |
| <tr><th>EntityReference </th><td>name of entity referenced </td><td>null </td><td>null</td></tr> |
| <tr><th>Notation </th><td>notation name </td><td>null </td><td>null</td></tr> |
| <tr><th>ProcessingInstruction </th><td>target </td><td>entire content excluding the target </td><td>null</td></tr> |
| <tr><th>Text </th><td>"#text" </td><td>content of the text node </td><td>null</td></tr> |
| </table></p> |
| |
| @see <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113">Document Object Model (DOM) Level 2 Core Specification</a> </p> |
| @since OpenOffice 2.0 |
| */ |
| interface XNode : com::sun::star::uno::XInterface |
| { |
| |
| /** |
| Adds the node newChild to the end of the list of children of this node. |
| @param newChild |
| the new child node |
| @throws com::sun::star::xml::dom::DOMException |
| <p>HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does |
| not allow children of the type of the newChild node, or if the |
| node to append is one of this node's ancestors or this node itself.</p> |
| <p>WRONG_DOCUMENT_ERR: Raised if newChild was created from a different |
| document than the one that created this node.</p> |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or if |
| the previous parent of the node being inserted is readonly.</p> |
| */ |
| XNode appendChild([in] XNode newChild) raises (DOMException); |
| |
| /** |
| Returns a duplicate of this node, i.e., serves as a generic copy |
| constructor for nodes. |
| <p></p> |
| @param deep |
| <true/>: clone node together with any children<br> |
| <false/>: clone without children |
| @returns |
| the cloned node |
| */ |
| XNode cloneNode([in] boolean deep); |
| |
| /** |
| A NamedNodeMap containing the attributes of this node (if it is an Element) |
| or null otherwise. |
| */ |
| XNamedNodeMap getAttributes(); |
| |
| /** |
| A NodeList that contains all children of this node. |
| */ |
| XNodeList getChildNodes(); |
| |
| /** |
| The first child of this node. |
| */ |
| XNode getFirstChild(); |
| |
| /** |
| The last child of this node. |
| */ |
| XNode getLastChild(); |
| |
| /** |
| Returns the local part of the qualified name of this node. |
| */ |
| string getLocalName(); |
| |
| /** |
| The namespace URI of this node, or null if it is unspecified. |
| */ |
| string getNamespaceURI(); |
| |
| /** |
| The node immediately following this node. |
| */ |
| XNode getNextSibling(); |
| |
| /** |
| The name of this node, depending on its type; see the table above. |
| */ |
| string getNodeName(); |
| |
| /** |
| A code representing the type of the underlying object, as defined above. |
| */ |
| NodeType getNodeType(); |
| |
| /** |
| The value of this node, depending on its type; see the table above. |
| |
| @throws com::sun::star::xml::dom::DOMException |
| <p>DOMSTRING_SIZE_ERR: Raised when it would return more characters |
| than fit in a DOMString variable on the implementation platform.</p> |
| */ |
| string getNodeValue() raises (DOMException); |
| |
| /** |
| The Document object associated with this node. |
| */ |
| XDocument getOwnerDocument(); |
| |
| /** |
| The parent of this node. |
| */ |
| XNode getParentNode(); |
| |
| /** |
| The namespace prefix of this node, or null if it is unspecified. |
| */ |
| string getPrefix(); |
| |
| /** |
| The node immediately preceding this node. |
| */ |
| XNode getPreviousSibling(); |
| |
| /** |
| Returns whether this node (if it is an element) has any attributes. |
| */ |
| boolean hasAttributes(); |
| |
| /** |
| Returns whether this node has any children. |
| */ |
| boolean hasChildNodes(); |
| |
| /** |
| Inserts the node newChild before the existing child node refChild. |
| @throws DOMException |
| <p>HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does |
| not allow children of the type of the newChild node, or if the |
| node to insert is one of this node's ancestors or this node itself. |
| <p>WRONG_DOCUMENT_ERR: Raised if newChild was created from a different |
| document than the one that created this node. |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or if the |
| parent of the node being inserted is readonly. |
| <p>NOT_FOUND_ERR: Raised if refChild is not a child of this node. |
| */ |
| XNode insertBefore([in] XNode newChild, [in] XNode refChild) raises (DOMException); |
| |
| /** |
| Tests whether the DOM implementation implements a specific feature and |
| that feature is supported by this node. |
| */ |
| boolean isSupported([in] string feature, [in] string ver); |
| |
| /** |
| Puts all Text nodes in the full depth of the sub-tree underneath this |
| Node, including attribute nodes, into a "normal" form where only structure |
| (e.g., elements, comments, processing instructions, CDATA sections, and |
| entity references) separates Text nodes, i.e., there are neither adjacent |
| Text nodes nor empty Text nodes. |
| */ |
| void normalize(); |
| |
| /** |
| Removes the child node indicated by oldChild from the list of children, |
| and returns it. |
| @throws DOMException |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. |
| <p>NOT_FOUND_ERR: Raised if oldChild is not a child of this node. |
| */ |
| XNode removeChild([in] XNode oldChild) raises (DOMException); |
| |
| /** |
| Replaces the child node oldChild with newChild in the list of children, |
| and returns the oldChild node. |
| @throws DOMException |
| <p>HIERARCHY_REQUEST_ERR: Raised if this node is of a type that |
| does not allow children of the type of the newChild node, or |
| if the node to put in is one of this node's ancestors or this |
| node itself. |
| <p>WRONG_DOCUMENT_ERR: Raised if newChild was created from a different |
| document than the one that created this node. |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of the |
| new node is readonly. |
| <p>NOT_FOUND_ERR: Raised if oldChild is not a child of this node. |
| */ |
| XNode replaceChild([in] XNode newChild, [in] XNode oldChild) raises (DOMException); |
| |
| /** |
| The value of this node, depending on its type; see the table above. |
| @throws DOMException |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. |
| <p>DOMSTRING_SIZE_ERR: Raised when it would return more characters |
| than fit in a DOMString variable on the implementation platform. |
| */ |
| void setNodeValue([in] string nodeValue) raises (DOMException); |
| |
| /** |
| The namespace prefix of this node, or null if it is unspecified. |
| @throws DOMException |
| <p>INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character, |
| per the XML 1.0 specification . |
| <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. |
| <p>NAMESPACE_ERR: Raised if the specified prefix is malformed per the Namespaces |
| in XML specification, if the namespaceURI of this node is null, if the specified |
| prefix is "xml" and the namespaceURI of this node is different from |
| "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the |
| specified prefix is "xmlns" and the namespaceURI of this node is different from |
| " http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName |
| of this node is "xmlns" . |
| */ |
| void setPrefix([in] string prefix) raises (DOMException); |
| |
| }; |
| |
| }; }; }; }; }; |
| |
| #endif |