source: trunk/ab5.0/ablib/src/Classes/System/Xml/XmlDocument.ab@ 655

Last change on this file since 655 was 655, checked in by イグトランス (egtra), 15 years ago

#161完了。StreamReaderのUnicode対応。

File size: 3.7 KB
Line 
1Namespace System
2Namespace Xml
3
4/*!
5@brief XMLドキュメントを表す
6*/
7Class XmlDocument
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
18Public
19
20 /*!
21 @brief コンストラクタ
22 */
23 Sub XmlDocument()
24 XmlNode( XmlNodeType.Document, "", "#document", "", Nothing )
25 End Sub
26
27 /*!
28 @brief コンストラクタ
29 */
30 'Sub XmlDocument( xmlImplementation As XmlImplementation )
31 'End Sub
32
33 /*!
34 @brief コンストラクタ
35 */
36 'Sub XmlDocument( xmlNameTable As XmlNameTable )
37 'End Sub
38
39
40 '----------------------------------------------------------------
41 ' パブリック プロパティ
42 '----------------------------------------------------------------
43
44 /*!
45 @brief このノードとそのすべての子ノードを表すマークアップを取得します。
46 @return このノードとそのすべての子ノードを格納しているマークアップ。
47 */
48 Override Function OuterXml() As String
49 Return This.InnerXml
50 End Function
51
52
53 '----------------------------------------------------------------
54 ' パブリック メソッド
55 '----------------------------------------------------------------
56
57 /*!
58 @brief 指定した値を使用して、XmlDeclaration ノードを作成します。
59 @param version XMLのバージョン番号。
60 encoding 文字コード。(例:"shift-jis", "UTF-8", "EUC-JP")
61 standalone 外部DTDの参照が必要かどうか。"yes" or "no"
62 */
63 Function CreateXmlDeclaration( version As String, encoding As String, standalone As String ) As XmlDeclaration
64 Return New XmlDeclaration( version ,encoding, standalone, This )
65 End Function
66
67 /*!
68 @brief 指定した名前を使用して属性を作成します。
69 @param name 属性名
70 */
71 Function CreateAttribute( name As String) As XmlAttribute
72 VerifyLocalName( name )
73
74 Return New XmlAttribute( "", name, "", This )
75 End Function
76
77 /*!
78 @brief 指定した名前を使用して要素を作成します。
79 @param name 要素名。
80 */
81 Function CreateElement( name As String ) As XmlElement
82 VerifyLocalName( name )
83
84 Return New XmlElement( "", name, "", This )
85 End Function
86
87 /*!
88 @brief 指定した文字列を使用してテキストノードを作成します。
89 @param text 文字列。
90 */
91 Function CreateTextNode( text As String ) As XmlText
92 Return New XmlText( text, This )
93 End Function
94
95 /*!
96 @brief 指定したストリームからXML文書を読み込む。
97 @param reader 読み込むリーダ。
98 */
99 Virtual Sub Load( reader As System.IO.TextReader )
100 This.RemoveAll()
101 ActiveBasic.Xml.Parser.Parse( reader.ReadToEnd(), This )
102 End Sub
103
104 /*!
105 @brief 指定したストリームからXML文書を読み込む。
106 @param stream 読み込み先のストリーム。
107 */
108 Virtual Sub Load( inStream As System.IO.Stream )
109 Load( New System.IO.StreamReader( inStream ) )
110 End Sub
111
112 /*!
113 @brief 指定したファイルからXML文書を読み込む。
114 @param ファイルパス。
115 */
116 Virtual Sub Load( filename As String )
117 Dim r = New System.IO.StreamReader( filename )
118 Load( r )
119 r.Dispose()
120 End Sub
121
122 /*!
123 @brief 指定したストリームにXML文書を保存する。
124 @param stream 保存先のストリーム。
125 */
126 Virtual Sub Save( outStream As System.IO.Stream )
127 Dim writer = New IO.StreamWriter( outStream )
128 Save( writer )
129 writer.Flush()
130 End Sub
131
132 /*!
133 @brief 指定したファイルにXML文書を保存する。
134 @param ファイルパス。
135 */
136 Virtual Sub Save( filename As String )
137 Dim w = New IO.StreamWriter( filename )
138 Save( w )
139 w.Dispose()
140 End Sub
141
142 /*!
143 @brief 指定したテキストライタにXML文書を保存する。
144 @param テキストライタ。
145 */
146 Virtual Sub Save( writer As System.IO.TextWriter )
147 writer.Write( InnerXmlSupportedIndent( True ) )
148 End Sub
149End Class
150
151
152End Namespace
153End Namespace
Note: See TracBrowser for help on using the repository browser.