diff options
Diffstat (limited to 'offapi/com/sun/star/xml/dom/XNode.idl')
-rw-r--r-- | offapi/com/sun/star/xml/dom/XNode.idl | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/offapi/com/sun/star/xml/dom/XNode.idl b/offapi/com/sun/star/xml/dom/XNode.idl new file mode 100644 index 000000000..b5ff89627 --- /dev/null +++ b/offapi/com/sun/star/xml/dom/XNode.idl @@ -0,0 +1,268 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_xml_dom_XNode_idl__ +#define __com_sun_star_xml_dom_XNode_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/xml/dom/NodeType.idl> +#include <com/sun/star/xml/dom/XNodeList.idl> +#include <com/sun/star/xml/dom/XNamedNodeMap.idl> + + +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 OOo 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |