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 Custom=Wrap, 23 DependentLifetime, 24] interface Node : EventTarget { 25 // NodeType 26 const unsigned short ELEMENT_NODE = 1; 27 const unsigned short ATTRIBUTE_NODE = 2; 28 const unsigned short TEXT_NODE = 3; 29 const unsigned short CDATA_SECTION_NODE = 4; 30 const unsigned short ENTITY_REFERENCE_NODE = 5; // EntityReference nodes are impossible to create in WebKit. 31 const unsigned short ENTITY_NODE = 6; 32 const unsigned short PROCESSING_INSTRUCTION_NODE = 7; 33 const unsigned short COMMENT_NODE = 8; 34 const unsigned short DOCUMENT_NODE = 9; 35 const unsigned short DOCUMENT_TYPE_NODE = 10; 36 const unsigned short DOCUMENT_FRAGMENT_NODE = 11; 37 const unsigned short NOTATION_NODE = 12; 38 39 [PerWorldBindings] readonly attribute DOMString nodeName; 40 41 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, CustomElementCallbacks] attribute DOMString nodeValue; 42 43 [PerWorldBindings] readonly attribute unsigned short nodeType; 44 [PerWorldBindings] readonly attribute Node parentNode; 45 [PerWorldBindings] readonly attribute NodeList childNodes; 46 [PerWorldBindings] readonly attribute Node firstChild; 47 [PerWorldBindings] readonly attribute Node lastChild; 48 [PerWorldBindings] readonly attribute Node previousSibling; 49 [PerWorldBindings] readonly attribute Node nextSibling; 50 [PerWorldBindings] readonly attribute Document ownerDocument; 51 52 [Custom, CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Node insertBefore(Node newChild, Node refChild); 53 [Custom, CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Node replaceChild(Node newChild, Node oldChild); 54 [Custom, CustomElementCallbacks, PerWorldBindings, RaisesException] Node removeChild(Node oldChild); 55 [Custom, CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Node appendChild(Node newChild); 56 57 boolean hasChildNodes(); 58 [CustomElementCallbacks, PerWorldBindings] 59 Node cloneNode(optional boolean deep); 60 [CustomElementCallbacks] void normalize(); 61 62 // Introduced in DOM Level 2: 63 [MeasureAs=NodeIsSupported] boolean isSupported([Default=Undefined] optional DOMString feature, 64 [TreatNullAs=NullString,Default=Undefined] optional DOMString version); // Removed in DOM4. 65 66 [TreatReturnedNullStringAs=Null, PerWorldBindings, MeasureAs=NodeNamespaceURI] readonly attribute DOMString namespaceURI; // Moved to Element and Attr in DOM4. 67 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, RaisesException=Setter, MeasureAs=NodePrefix] attribute DOMString prefix; // Moved to Element and Attr in DOM4. 68 [TreatReturnedNullStringAs=Null, PerWorldBindings, MeasureAs=NodeLocalName] readonly attribute DOMString localName; // Moved to Element and Attr in DOM4. 69 70 // Introduced in DOM Level 3: 71 [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString baseURI; 72 73 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, CustomElementCallbacks] attribute DOMString textContent; 74 75 [MeasureAs=NodeIsSameNode] boolean isSameNode([Default=Undefined] optional Node other); // Removed in DOM4. 76 boolean isEqualNode(Node other); 77 [TreatReturnedNullStringAs=Null] DOMString lookupPrefix([TreatNullAs=NullString] DOMString namespaceURI); 78 boolean isDefaultNamespace([TreatNullAs=NullString] DOMString namespaceURI); 79 [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI([TreatNullAs=NullString] DOMString prefix); 80 81 // DocumentPosition 82 const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; 83 const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; 84 const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; 85 const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; 86 const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; 87 const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; 88 89 unsigned short compareDocumentPosition(Node other); 90 91 // Introduced in DOM4 92 [ImplementedAs=bindingsContains] boolean contains(Node other); 93 94 // IE extensions 95 [PerWorldBindings] readonly attribute Element parentElement; 96}; 97