1/* 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 3 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21[ 22 DependentLifetime, 23] interface Node : EventTarget { 24 // NodeType 25 const unsigned short ELEMENT_NODE = 1; 26 const unsigned short ATTRIBUTE_NODE = 2; 27 const unsigned short TEXT_NODE = 3; 28 const unsigned short CDATA_SECTION_NODE = 4; 29 const unsigned short ENTITY_REFERENCE_NODE = 5; // EntityReference nodes are impossible to create in WebKit. 30 const unsigned short ENTITY_NODE = 6; 31 const unsigned short PROCESSING_INSTRUCTION_NODE = 7; 32 const unsigned short COMMENT_NODE = 8; 33 const unsigned short DOCUMENT_NODE = 9; 34 const unsigned short DOCUMENT_TYPE_NODE = 10; 35 const unsigned short DOCUMENT_FRAGMENT_NODE = 11; 36 const unsigned short NOTATION_NODE = 12; 37 38 readonly attribute DOMString nodeName; 39 40 [CustomElementCallbacks] attribute DOMString? nodeValue; 41 42 readonly attribute unsigned short nodeType; 43 [PerWorldBindings] readonly attribute Node parentNode; 44 [PerWorldBindings] readonly attribute NodeList childNodes; 45 [PerWorldBindings] readonly attribute Node firstChild; 46 [PerWorldBindings] readonly attribute Node lastChild; 47 [PerWorldBindings] readonly attribute Node previousSibling; 48 [PerWorldBindings] readonly attribute Node nextSibling; 49 [PerWorldBindings] readonly attribute Document ownerDocument; 50 51 [CustomElementCallbacks, PerWorldBindings, RaisesException, TypeChecking=Interface] Node insertBefore(Node newChild, Node? refChild); 52 [CustomElementCallbacks, PerWorldBindings, RaisesException, TypeChecking=Interface] Node replaceChild(Node newChild, Node oldChild); 53 [CustomElementCallbacks, RaisesException, TypeChecking=Interface] Node removeChild(Node oldChild); 54 [CustomElementCallbacks, PerWorldBindings, RaisesException, TypeChecking=Interface] Node appendChild(Node newChild); 55 56 [ImplementedAs=hasChildren] boolean hasChildNodes(); 57 [CustomElementCallbacks] Node cloneNode(optional boolean deep); 58 [CustomElementCallbacks] void normalize(); 59 60 // Introduced in DOM Level 2: 61 [MeasureAs=NodeNamespaceURI] readonly attribute DOMString? namespaceURI; // Moved to Element and Attr in DOM4. 62 [MeasureAs=NodeLocalName] readonly attribute DOMString? localName; // Moved to Element and Attr in DOM4. 63 64 // Introduced in DOM Level 3: 65 readonly attribute DOMString? baseURI; 66 67 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, TreatUndefinedAs=NullString, CustomElementCallbacks] attribute DOMString textContent; 68 69 [MeasureAs=NodeIsSameNode] boolean isSameNode([Default=Undefined] optional Node other); // Removed in DOM4. 70 boolean isEqualNode(Node other); 71 DOMString? lookupPrefix(DOMString? namespaceURI); 72 boolean isDefaultNamespace(DOMString? namespaceURI); 73 DOMString? lookupNamespaceURI(DOMString? prefix); 74 75 // DocumentPosition 76 const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; 77 const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; 78 const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; 79 const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; 80 const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; 81 const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; 82 83 unsigned short compareDocumentPosition(Node other); 84 85 // Introduced in DOM4 86 boolean contains(Node other); 87 88 // IE extensions 89 [PerWorldBindings] readonly attribute Element parentElement; 90}; 91