Changeset 442 for trunk/Include/Classes/System/Xml/XmlNode.ab
- Timestamp:
- Feb 28, 2008, 11:06:09 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Include/Classes/System/Xml/XmlNode.ab
r424 r442 1 1 Namespace System 2 2 Namespace Xml 3 4 Enum XmlNodeType 5 None 6 Element 7 Attribute 8 Text 9 CDATA 10 EntifyReference 11 Entity 12 ProcessingInstruction 13 Comment 14 Document 15 DocumentType 16 DocumentFragment 17 Notation 18 Whitespace 19 SignificantWhitespace 20 EndElement 21 EndEntity 22 XmlDeclaration 23 End Enum 3 24 4 25 /*! … … 14 35 ownerDocument As XmlDocument 15 36 value As String 16 17 Function InnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String 37 nodeType As XmlNodeType 38 39 Public 40 41 /*! 42 @brief コンストラクタ 43 */ 44 Sub XmlNode( nodeType As XmlNodeType, prefix As String, localName As String, namespaceURI As String, doc As XmlDocument ) 45 This.prefix = prefix 46 This.localName = localName 47 This.namespaceURI = namespaceURI 48 This.ownerDocument = doc 49 This.value = Nothing 50 51 childNodes = New XmlNodeList() 52 End Sub 53 54 /*! 55 @brief コンストラクタ 56 */ 57 Sub XmlNode( nodeType As XmlNodeType, data As String, doc As XmlDocument ) 58 This.prefix = Nothing 59 This.localName = Nothing 60 This.namespaceURI = Nothing 61 This.ownerDocument = doc 62 This.value = data 63 64 childNodes = Nothing 65 End Sub 66 67 68 '---------------------------------------------------------------- 69 ' パブリック プロパティ 70 '---------------------------------------------------------------- 71 72 /*! 73 @brief 名前またはインデックスによってアクセスできる属性のコレクションを表します。 74 */ 75 'Virtual Function Attributes() As XmlAttributeCollection 76 ' Return attributes 77 'End Function 78 79 /*! 80 @brief 子ノードリストを返します。 81 */ 82 Virtual Function ChildNodes() As XmlNodeList 83 Return childNodes 84 End Function 85 86 /*! 87 @brief ノードの最初の子を取得します。 88 */ 89 Virtual Function FirstChild() As XmlNode 90 If childNodes.Count = 0 Then 91 ' 子ノードが1つもないときはNothingを返す 92 Return Nothing 93 End If 94 Return childNodes[0] 95 End Function 96 97 /*! 98 @brief 子ノードが1つ以上あるかどうかを取得します。 99 */ 100 Virtual Function HasChildNodes() As Boolean 101 Return Not ( childNodes.Count = 0 ) 102 End Function 103 104 /*! 105 @brief このノードの子ノードだけを表すマークアップを取得または設定します。 106 */ 107 Virtual Function InnerXml() As String 108 Return InnerXmlSupportedIndent() 109 End Function 110 111 /*! 112 @brief ノードのローカル名を取得します。 113 @return ノードのローカル名。 114 */ 115 Virtual Function LocalName() As String 116 return localName 117 End Function 118 119 /*! 120 @brief このノードの名前空間 URI を取得します。 121 @return このノードの名前空間 URI。 122 */ 123 Virtual Function NamespaceURI() As String 124 return NamespaceURI 125 End Function 126 127 /*! 128 @brief このノードのノードタイプを取得します。 129 @return このノードのノードタイプ。 130 */ 131 Virtual Function NodeType() As XmlNodeType 132 return nodeType 133 End Function 134 135 /*! 136 @brief このノードとそのすべての子ノードを表すマークアップを取得します。 137 @return このノードとそのすべての子ノードを格納しているマークアップ。 138 */ 139 Virtual Function OuterXml() As String 140 Return OwnerXmlSupportedIndent() 141 End Function 142 143 /*! 144 @brief このノードが属する XmlDocument を取得します。 145 @return このノードが属する XmlDocument。 146 */ 147 Virtual Function OwnerDocument() As XmlDocument 148 Return ownerDocument 149 End Function 150 151 /*! 152 @brief このノードの名前空間プリフィックスを取得または設定します。 153 @return このノードの名前空間プリフィックス。たとえば、プリフィックスは要素 <bk:book> の bk です。プリフィックスがない場合、このプロパティは String.Empty を返します。 154 */ 155 Virtual Function Prefix() As String 156 return prefix 157 End Function 158 159 160 161 162 '---------------------------------------------------------------- 163 ' パブリック メソッド 164 '---------------------------------------------------------------- 165 166 /*! 167 @brief このノードの子ノードリストの末尾に指定したノードを追加する。 168 */ 169 Virtual Function AppendChild( newChild As XmlNode ) As XmlNode 170 childNodes.Add( newChild ) 171 Return newChild 172 End Function 173 174 /*! 175 @brief ノードを複製する。 176 */ 177 Virtual Function Clone() As XmlNode 178 ' TODO: 実装 179 End Function 180 181 /*! 182 @brief 派生クラスでオーバーライドされた場合は、ノードの複製を作成する。 183 */ 184 Virtual Function CloneNode( deep As Boolean ) As XmlNode 185 ' TODO: 実装 186 End Function 187 188 /*! 189 @brief XmlNode のノードに対する Foreachスタイルの反復をサポートします。 190 */ 191 Virtual Function GetEnumerator() As IEnumerator 192 ' TODO: 実装 193 End Function 194 195 /*! 196 @brief 指定したノードを指定した参照ノードの直後に挿入します。 197 @param newChild 挿入するXmlNode。 198 refChild 参照ノードであるXmlNode。newNode は、refNode の後に配置されます。 199 @return 挿入されるノード。 200 */ 201 Virtual Function InsertAfter( newChild As XmlNode, refChild As XmlNode ) As XmlNode 202 ' TODO: 実装 203 End Function 204 205 /*! 206 @brief 指定したノードを指定した参照ノードの直前に挿入します。 207 @param newChild 挿入するXmlNode。 208 refChild 参照ノードであるXmlNode。newNode は、refNode の前に配置されます。 209 @return 挿入されるノード。 210 */ 211 Virtual Function InsertBefore( newChild As XmlNode, refChild As XmlNode ) As XmlNode 212 ' TODO: 実装 213 End Function 214 215 /*! 216 @brief このノードの子ノードのリストの先頭に、指定したノードを追加します。 217 @param newChild 挿入するXmlNode。 218 @return 挿入されるノード。 219 */ 220 Virtual Function PrependChild( newChild As XmlNode ) As XmlNode 221 ' TODO: 実装 222 End Function 223 224 /*! 225 @brief 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。 226 */ 227 Virtual Sub RemoveAll() 228 ' TODO: 実装 229 End Sub 230 231 /*! 232 @brief 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。 233 @param newChild 削除するXmlNode。 234 @return 削除されたノード。 235 */ 236 Virtual Function RemoveChild( oldChild As XmlNode ) As XmlNode 237 ' TODO: 実装 238 End Function 239 240 /*! 241 @brief 子ノード oldChild を newChild ノードに置き換えます。 242 @param newChild 新しいノード。 243 oldChild 置換されノード。 244 @return 置き換えられたノード。 245 */ 246 Virtual Function ReplaceChild( newChild As XmlNode, oldChild As XmlNode ) As XmlNode 247 ' TODO: 実装 248 End Function 249 250 251 Protected 252 Virtual Function InnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String 18 253 Dim result = "" 19 254 If Not ActiveBasic.IsNothing( childNodes ) Then … … 26 261 End Function 27 262 28 Function OwnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String263 Virtual Function OwnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String 29 264 Dim indentStr = "" 30 265 Dim crlfStr = "" … … 56 291 Return result 57 292 End Function 58 59 Public60 61 /*!62 @brief コンストラクタ63 */64 Sub XmlNode( prefix As String, localName As String, namespaceURI As String, doc As XmlDocument )65 This.prefix = prefix66 This.localName = localName67 This.namespaceURI = namespaceURI68 This.ownerDocument = doc69 This.value = Nothing70 71 childNodes = New XmlNodeList()72 End Sub73 74 /*!75 @brief コンストラクタ76 */77 Sub XmlNode( data As String, doc As XmlDocument )78 This.prefix = Nothing79 This.localName = Nothing80 This.namespaceURI = Nothing81 This.ownerDocument = doc82 This.value = data83 84 childNodes = Nothing85 End Sub86 87 88 '----------------------------------------------------------------89 ' パブリック プロパティ90 '----------------------------------------------------------------91 92 /*!93 @brief 名前またはインデックスによってアクセスできる属性のコレクションを表します。94 */95 'Virtual Function Attributes() As XmlAttributeCollection96 ' Return attributes97 'End Function98 99 /*!100 @brief 子ノードリストを返します。101 */102 Virtual Function ChildNodes() As XmlNodeList103 Return childNodes104 End Function105 106 /*!107 @brief ノードの最初の子を取得します。108 */109 Virtual Function FirstChild() As XmlNode110 If childNodes.Count = 0 Then111 ' 子ノードが1つもないときはNothingを返す112 Return Nothing113 End If114 Return childNodes[0]115 End Function116 117 /*!118 @brief 子ノードが1つ以上あるかどうかを取得します。119 */120 Virtual Function HasChildNodes() As Boolean121 Return Not ( childNodes.Count = 0 )122 End Function123 124 /*!125 @brief このノードの子ノードだけを表すマークアップを取得または設定します。126 */127 Virtual Function InnerXml() As String128 Return InnerXmlSupportedIndent()129 End Function130 131 /*!132 @brief ノードのローカル名を取得します。133 @return ノードのローカル名。134 */135 Virtual Function LocalName() As String136 return localName137 End Function138 139 /*!140 @brief このノードの名前空間 URI を取得します。141 @return このノードの名前空間 URI。142 */143 Virtual Function NamespaceURI() As String144 return NamespaceURI145 End Function146 147 /*!148 @brief このノードとそのすべての子ノードを表すマークアップを取得します。149 @return このノードとそのすべての子ノードを格納しているマークアップ。150 */151 Virtual Function OuterXml() As String152 Return OwnerXmlSupportedIndent()153 End Function154 155 /*!156 @brief このノードが属する XmlDocument を取得します。157 @return このノードが属する XmlDocument。158 */159 Virtual Function OwnerDocument() As XmlDocument160 Return ownerDocument161 End Function162 163 /*!164 @brief このノードの名前空間プリフィックスを取得または設定します。165 @return このノードの名前空間プリフィックス。たとえば、プリフィックスは要素 <bk:book> の bk です。プリフィックスがない場合、このプロパティは String.Empty を返します。166 */167 Virtual Function Prefix() As String168 return prefix169 End Function170 171 172 173 174 '----------------------------------------------------------------175 ' パブリック メソッド176 '----------------------------------------------------------------177 178 /*!179 @brief このノードの子ノードリストの末尾に指定したノードを追加する。180 */181 Virtual Function AppendChild( newChild As XmlNode ) As XmlNode182 childNodes.Add( newChild )183 Return newChild184 End Function185 186 /*!187 @brief ノードを複製する。188 */189 Virtual Function Clone() As XmlNode190 ' TODO: 実装191 End Function192 193 /*!194 @brief 派生クラスでオーバーライドされた場合は、ノードの複製を作成する。195 */196 Virtual Function CloneNode( deep As Boolean ) As XmlNode197 ' TODO: 実装198 End Function199 200 /*!201 @brief XmlNode のノードに対する Foreachスタイルの反復をサポートします。202 */203 Virtual Function GetEnumerator() As IEnumerator204 ' TODO: 実装205 End Function206 207 /*!208 @brief 指定したノードを指定した参照ノードの直後に挿入します。209 @param newChild 挿入するXmlNode。210 refChild 参照ノードであるXmlNode。newNode は、refNode の後に配置されます。211 @return 挿入されるノード。212 */213 Virtual Function InsertAfter( newChild As XmlNode, refChild As XmlNode ) As XmlNode214 ' TODO: 実装215 End Function216 217 /*!218 @brief 指定したノードを指定した参照ノードの直前に挿入します。219 @param newChild 挿入するXmlNode。220 refChild 参照ノードであるXmlNode。newNode は、refNode の前に配置されます。221 @return 挿入されるノード。222 */223 Virtual Function InsertBefore( newChild As XmlNode, refChild As XmlNode ) As XmlNode224 ' TODO: 実装225 End Function226 227 /*!228 @brief このノードの子ノードのリストの先頭に、指定したノードを追加します。229 @param newChild 挿入するXmlNode。230 @return 挿入されるノード。231 */232 Virtual Function PrependChild( newChild As XmlNode ) As XmlNode233 ' TODO: 実装234 End Function235 236 /*!237 @brief 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。238 */239 Virtual Sub RemoveAll()240 ' TODO: 実装241 End Sub242 243 /*!244 @brief 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。245 @param newChild 削除するXmlNode。246 @return 削除されたノード。247 */248 Virtual Function RemoveChild( oldChild As XmlNode ) As XmlNode249 ' TODO: 実装250 End Function251 252 /*!253 @brief 子ノード oldChild を newChild ノードに置き換えます。254 @param newChild 新しいノード。255 oldChild 置換されノード。256 @return 置き換えられたノード。257 */258 Virtual Function ReplaceChild( newChild As XmlNode, oldChild As XmlNode ) As XmlNode259 ' TODO: 実装260 End Function261 262 293 End Class 263 294
Note:
See TracChangeset
for help on using the changeset viewer.