Changeset 424 for trunk/Include/Classes
- Timestamp:
- Feb 25, 2008, 11:03:28 PM (17 years ago)
- Location:
- trunk/Include/Classes
- Files:
-
- 6 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Include/Classes/System/Xml/XmlDocument.ab
r402 r424 7 7 Class XmlDocument 8 8 Inherits XmlNode 9 10 Sub VerifyLocalName( name As String ) 11 If Object.ReferenceEquals( name, Nothing ) Then 12 ' Throw System.ArgumentException() 13 ElseIf name.Length = 0 Then 14 ' Throw System.ArgumentException() 15 End If 16 End Sub 17 9 18 Public 10 19 … … 13 22 */ 14 23 Sub XmlDocument() 24 XmlNode( "", "#document", "", Nothing ) 15 25 End Sub 16 26 … … 27 37 'End Sub 28 38 29 Function AppendChild( newChild As XmlNode ) As XmlNode 30 ' TODO: 実装 39 /*! 40 @brief 指定した値を使用して、XmlDeclaration ノードを作成します。 41 */ 42 Function CreateXmlDeclaration( version As String, encoding As String, standalone As String ) As XmlDeclaration 43 Return New XmlDeclaration( version ,encoding, standalone, This ) 31 44 End Function 32 45 33 Function CloneNode( deep As Boolean ) As XmlNode 34 ' TODO: 実装 46 /*! 47 @brief 指定した名前を使用して要素を作成します。 48 */ 49 Function CreateElement( name As String ) As XmlElement 50 VerifyLocalName( name ) 51 52 Return New XmlElement( "", name, "", This ) 53 End Function 54 55 /*! 56 @brief このノードとそのすべての子ノードを表すマークアップを取得します。 57 @return このノードとそのすべての子ノードを格納しているマークアップ。 58 */ 59 Override Function OuterXml() As String 60 Return This.InnerXml 35 61 End Function 36 62 -
trunk/Include/Classes/System/Xml/XmlNode.ab
r402 r424 6 6 */ 7 7 Class XmlNode 8 9 'attributes As XmlAttributeCollection 10 childNodes As XmlNodeList 11 prefix As String 12 localName As String 13 namespaceURI As String 14 ownerDocument As XmlDocument 15 value As String 16 17 Function InnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String 18 Dim result = "" 19 If Not ActiveBasic.IsNothing( childNodes ) Then 20 ' 子ノード 21 Foreach childNode In childNodes 22 result += childNode.OwnerXmlSupportedIndent( isIndent, indent ) 23 Next 24 End If 25 Return result 26 End Function 27 28 Function OwnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String 29 Dim indentStr = "" 30 Dim crlfStr = "" 31 If isIndent Then 32 ' インデントをサポートする場合 33 Dim i As Long 34 For i=0 To ELM(indent) 35 indentStr += Ex"\t" 36 Next 37 38 crlfStr = Ex"\r\n" 39 End If 40 41 If childNodes.Count = 0 Then 42 Return indentStr + "<" + localName + " />" + crlfStr 43 End If 44 45 Dim result = "" 46 47 ' 開始タグ 48 result += indentStr + "<" + localName + ">" + crlfStr 49 50 ' 子ノードリスト 51 result += InnerXmlSupportedIndent( isIndent, indent + 1 ) 52 53 ' 終了タグ 54 result += indentStr + "</" + localName + ">" + crlfStr 55 56 Return result 57 End Function 58 8 59 Public 9 60 10 attributes As XmlAttributeCollection 11 childNodes As XmlNodeList 61 /*! 62 @brief コンストラクタ 63 */ 64 Sub XmlNode( prefix As String, localName As String, namespaceURI As String, doc As XmlDocument ) 65 This.prefix = prefix 66 This.localName = localName 67 This.namespaceURI = namespaceURI 68 This.ownerDocument = doc 69 This.value = Nothing 70 71 childNodes = New XmlNodeList() 72 End Sub 73 74 /*! 75 @brief コンストラクタ 76 */ 77 Sub XmlNode( data As String, doc As XmlDocument ) 78 This.prefix = Nothing 79 This.localName = Nothing 80 This.namespaceURI = Nothing 81 This.ownerDocument = doc 82 This.value = data 83 84 childNodes = Nothing 85 End Sub 86 87 88 '---------------------------------------------------------------- 89 ' パブリック プロパティ 90 '---------------------------------------------------------------- 12 91 13 92 /*! 14 93 @brief 名前またはインデックスによってアクセスできる属性のコレクションを表します。 15 94 */ 16 Function Attributes() As XmlAttributeCollection17 Return attributes18 End Function95 'Virtual Function Attributes() As XmlAttributeCollection 96 ' Return attributes 97 'End Function 19 98 20 99 /*! 21 100 @brief 子ノードリストを返します。 22 101 */ 23 Function ChildNodes() As XmlNodeList102 Virtual Function ChildNodes() As XmlNodeList 24 103 Return childNodes 25 104 End Function … … 28 107 @brief ノードの最初の子を取得します。 29 108 */ 30 Function FirstChild() As XmlNode109 Virtual Function FirstChild() As XmlNode 31 110 If childNodes.Count = 0 Then 32 111 ' 子ノードが1つもないときはNothingを返す … … 39 118 @brief 子ノードが1つ以上あるかどうかを取得します。 40 119 */ 41 Function HasChildNodes() As Boolean120 Virtual Function HasChildNodes() As Boolean 42 121 Return Not ( childNodes.Count = 0 ) 43 122 End Function 44 123 45 124 /*! 125 @brief このノードの子ノードだけを表すマークアップを取得または設定します。 126 */ 127 Virtual Function InnerXml() As String 128 Return InnerXmlSupportedIndent() 129 End Function 130 131 /*! 132 @brief ノードのローカル名を取得します。 133 @return ノードのローカル名。 134 */ 135 Virtual Function LocalName() As String 136 return localName 137 End Function 138 139 /*! 140 @brief このノードの名前空間 URI を取得します。 141 @return このノードの名前空間 URI。 142 */ 143 Virtual Function NamespaceURI() As String 144 return NamespaceURI 145 End Function 146 147 /*! 148 @brief このノードとそのすべての子ノードを表すマークアップを取得します。 149 @return このノードとそのすべての子ノードを格納しているマークアップ。 150 */ 151 Virtual Function OuterXml() As String 152 Return OwnerXmlSupportedIndent() 153 End Function 154 155 /*! 156 @brief このノードが属する XmlDocument を取得します。 157 @return このノードが属する XmlDocument。 158 */ 159 Virtual Function OwnerDocument() As XmlDocument 160 Return ownerDocument 161 End Function 162 163 /*! 164 @brief このノードの名前空間プリフィックスを取得または設定します。 165 @return このノードの名前空間プリフィックス。たとえば、プリフィックスは要素 <bk:book> の bk です。プリフィックスがない場合、このプロパティは String.Empty を返します。 166 */ 167 Virtual Function Prefix() As String 168 return prefix 169 End Function 170 171 172 173 174 '---------------------------------------------------------------- 175 ' パブリック メソッド 176 '---------------------------------------------------------------- 177 178 /*! 46 179 @brief このノードの子ノードリストの末尾に指定したノードを追加する。 47 180 */ 48 Function AppendChild( newChild As XmlNode ) As XmlNode 49 ' TODO: 実装 181 Virtual Function AppendChild( newChild As XmlNode ) As XmlNode 182 childNodes.Add( newChild ) 183 Return newChild 50 184 End Function 51 185 … … 53 187 @brief ノードを複製する。 54 188 */ 55 Function Clone() As XmlNode189 Virtual Function Clone() As XmlNode 56 190 ' TODO: 実装 57 191 End Function … … 60 194 @brief 派生クラスでオーバーライドされた場合は、ノードの複製を作成する。 61 195 */ 62 Function CloneNode( deep As Boolean ) As XmlNode196 Virtual Function CloneNode( deep As Boolean ) As XmlNode 63 197 ' TODO: 実装 64 198 End Function … … 67 201 @brief XmlNode のノードに対する Foreachスタイルの反復をサポートします。 68 202 */ 69 Function GetEnumerator() As IEnumerator203 Virtual Function GetEnumerator() As IEnumerator 70 204 ' TODO: 実装 71 205 End Function … … 77 211 @return 挿入されるノード。 78 212 */ 79 Function InsertAfter( newChild As XmlNode, refChild As XmlNode ) As XmlNode213 Virtual Function InsertAfter( newChild As XmlNode, refChild As XmlNode ) As XmlNode 80 214 ' TODO: 実装 81 215 End Function … … 87 221 @return 挿入されるノード。 88 222 */ 89 Function InsertBefore( newChild As XmlNode, refChild As XmlNode ) As XmlNode223 Virtual Function InsertBefore( newChild As XmlNode, refChild As XmlNode ) As XmlNode 90 224 ' TODO: 実装 91 225 End Function … … 96 230 @return 挿入されるノード。 97 231 */ 98 Function PrependChild( newChild As XmlNode ) As XmlNode232 Virtual Function PrependChild( newChild As XmlNode ) As XmlNode 99 233 ' TODO: 実装 100 234 End Function … … 103 237 @brief 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。 104 238 */ 105 Sub RemoveAll()239 Virtual Sub RemoveAll() 106 240 ' TODO: 実装 107 241 End Sub … … 112 246 @return 削除されたノード。 113 247 */ 114 Function RemoveChild( oldChild As XmlNode ) As XmlNode248 Virtual Function RemoveChild( oldChild As XmlNode ) As XmlNode 115 249 ' TODO: 実装 116 250 End Function … … 122 256 @return 置き換えられたノード。 123 257 */ 124 Function ReplaceChild( newChild As XmlNode, oldChild As XmlNode ) As XmlNode258 Virtual Function ReplaceChild( newChild As XmlNode, oldChild As XmlNode ) As XmlNode 125 259 ' TODO: 実装 126 260 End Function 127 261 128 262 End Class 263 264 TypeDef XmlNodeList = System.Collections.Generic.List<XmlNode> 129 265 130 266 -
trunk/Include/Classes/index.ab
r420 r424 94 94 #require "./System/Windows/Forms/misc.ab" 95 95 #require "./System/Windows/Forms/PaintEventArgs.ab" 96 #require "./System/Xml/XmlAttribute.ab" 97 #require "./System/Xml/XmlCharacterData.ab" 98 #require "./System/Xml/XmlDeclaration.ab" 99 #require "./System/Xml/XmlDocument.ab" 100 #require "./System/Xml/XmlElement.ab" 101 #require "./System/Xml/XmlLinkedNode.ab" 102 #require "./System/Xml/XmlNode.ab" 103 #require "./System/Xml/XmlText.ab"
Note:
See TracChangeset
for help on using the changeset viewer.