/* -*- 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 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. 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. The values of nodeName, nodeValue, and attributes vary according to the node type as follows:
Interface nodeName nodeValue attributes Attr name of attribute value of attribute null CDATASection "#cdata-section" content of the CDATA Section null Comment "#comment" content of the comment null Document "#document" null null DocumentFragment "#document-fragment" null null DocumentType document type name null null Element tag name null NamedNodeMap Entity entity name null null EntityReference name of entity referenced null null Notation notation name null null ProcessingInstruction target entire content excluding the target null Text "#text" content of the text node null
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.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or if the previous parent of the node being inserted is readonly.
*/ XNode appendChild([in] XNode newChild) raises (DOMException); /** Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. @param deepDOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.
*/ 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 DOMExceptionHIERARCHY_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.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or if the parent of the node being inserted is readonly.
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
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
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
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.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of the new node is readonly.
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
NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
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
INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character, per the XML 1.0 specification .
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
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: */