1 | Namespace System
|
---|
2 | Namespace Xml
|
---|
3 |
|
---|
4 | /*!
|
---|
5 | @brief XMLドキュメントを表す
|
---|
6 | */
|
---|
7 | Class 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 |
|
---|
18 | Public
|
---|
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 stream 読み込み先のストリーム。
|
---|
98 | */
|
---|
99 | Virtual Sub Load( inStream As System.IO.Stream )
|
---|
100 | Dim length = inStream.Length As DWord
|
---|
101 | Dim xmlBuffer = calloc( length + 1 ) As *StrChar
|
---|
102 | inStream.Read( xmlBuffer As *Byte, 0, length )
|
---|
103 | Dim xmlString = New String( xmlBuffer )
|
---|
104 | free( xmlBuffer )
|
---|
105 |
|
---|
106 | This.RemoveAll()
|
---|
107 | ActiveBasic.Xml.Parser.Parse( xmlString, This )
|
---|
108 | End Sub
|
---|
109 |
|
---|
110 | /*!
|
---|
111 | @brief 指定したファイルからXML文書を読み込む。
|
---|
112 | @param ファイルパス。
|
---|
113 | */
|
---|
114 | Virtual Sub Load( filename As String )
|
---|
115 | Dim fileStream As System.IO.FileStream( filename, System.IO.FileMode.Open, System.IO.FileAccess.Read )
|
---|
116 | Load( fileStream )
|
---|
117 | End Sub
|
---|
118 |
|
---|
119 | /*!
|
---|
120 | @brief 指定したストリームにXML文書を保存する。
|
---|
121 | @param stream 保存先のストリーム。
|
---|
122 | */
|
---|
123 | Virtual Sub Save( outStream As System.IO.Stream )
|
---|
124 | Dim xmlStr = InnerXmlSupportedIndent( True )
|
---|
125 | outStream.Write( xmlStr.StrPtr As *Byte, 0, xmlStr.Length * SizeOf( StrChar ) )
|
---|
126 | End Sub
|
---|
127 |
|
---|
128 | /*!
|
---|
129 | @brief 指定したファイルにXML文書を保存する。
|
---|
130 | @param ファイルパス。
|
---|
131 | */
|
---|
132 | Virtual Sub Save( filename As String )
|
---|
133 | Dim fileStream As System.IO.FileStream( filename, System.IO.FileMode.Create, System.IO.FileAccess.Write )
|
---|
134 | Save( fileStream )
|
---|
135 | End Sub
|
---|
136 |
|
---|
137 | Private
|
---|
138 | Sub LoadXmlString( xmlString As String)
|
---|
139 | End Sub
|
---|
140 | End Class
|
---|
141 |
|
---|
142 |
|
---|
143 | End Namespace
|
---|
144 | End Namespace
|
---|