Index: trunk/Include/Classes/System/Xml/XmlAttribute.ab
===================================================================
--- trunk/Include/Classes/System/Xml/XmlAttribute.ab	(revision 442)
+++ trunk/Include/Classes/System/Xml/XmlAttribute.ab	(revision 443)
@@ -12,4 +12,19 @@
 		XmlNode( XmlNodeType.Attribute, prefix, localName, namespaceURI, doc )
 	End Sub
+
+	/*!
+	@brief	このノードの子ノードだけを表すマークアップを取得または設定します。
+	*/
+	Override Function InnerXml() As String
+		Return This.Value
+	End Function
+
+	/*!
+	@brief	このノードとそのすべての子ノードを表すマークアップを取得します。
+	@return	このノードとそのすべての子ノードを格納しているマークアップ。
+	*/
+	Override Function OuterXml() As String
+		Return This.LocalName + Ex"=\q" + InnerXml + Ex"\q"
+	End Function
 End Class
 
Index: trunk/Include/Classes/System/Xml/XmlDocument.ab
===================================================================
--- trunk/Include/Classes/System/Xml/XmlDocument.ab	(revision 442)
+++ trunk/Include/Classes/System/Xml/XmlDocument.ab	(revision 443)
@@ -39,4 +39,7 @@
 	/*!
 	@brief	指定した値を使用して、XmlDeclaration ノードを作成します。
+	@param	version XMLのバージョン番号。
+			encoding 文字コード。（例："shift-jis", "UTF-8", "EUC-JP"）
+			standalone 外部DTDの参照が必要かどうか。"yes" or "no"
 	*/
 	Function CreateXmlDeclaration( version As String, encoding As String, standalone As String ) As XmlDeclaration
@@ -45,5 +48,16 @@
 
 	/*!
+	@brief	指定した名前を使用して属性を作成します。
+	@param	name 属性名
+	*/
+	Function CreateAttribute( name As String) As XmlAttribute
+		VerifyLocalName( name )
+
+		Return New XmlAttribute( "", name, "", This )
+	End Function
+
+	/*!
 	@brief	指定した名前を使用して要素を作成します。
+	@param	name 要素名。
 	*/
 	Function CreateElement( name As String ) As XmlElement
Index: trunk/Include/Classes/System/Xml/XmlNode.ab
===================================================================
--- trunk/Include/Classes/System/Xml/XmlNode.ab	(revision 442)
+++ trunk/Include/Classes/System/Xml/XmlNode.ab	(revision 443)
@@ -28,5 +28,5 @@
 Class XmlNode
 
-	'attributes As XmlAttributeCollection
+	attributes As XmlAttributeCollection
 	childNodes As XmlNodeList
 	prefix As String
@@ -49,4 +49,5 @@
 		This.value = Nothing
 
+		attributes = New XmlAttributeCollection
 		childNodes = New XmlNodeList()
 	End Sub
@@ -62,4 +63,5 @@
 		This.value = data
 
+		attributes = New XmlAttributeCollection
 		childNodes = Nothing
 	End Sub
@@ -73,7 +75,7 @@
 	@brief	名前またはインデックスによってアクセスできる属性のコレクションを表します。
 	*/
-	'Virtual Function Attributes() As XmlAttributeCollection
-	'	Return attributes
-	'End Function
+	Virtual Function Attributes() As XmlAttributeCollection
+		Return attributes
+	End Function
 
 	/*!
@@ -157,5 +159,19 @@
 	End Function
 
-	
+	/*!
+	@brief	このノードの値を取得します。
+	@return	このノードの値。
+	*/
+	Virtual Function Value() As String
+		return value
+	End Function
+
+	/*!
+	@brief	このノードの値を設定します。
+	@param	value 値文字列。
+	*/
+	Virtual Sub Value( value As String )
+		This.value = value
+	End Sub
 
 
@@ -250,4 +266,18 @@
 
 Protected
+
+	Function GetAttributesStr() As String
+		If attributes.Count = 0 Then
+			' 属性が1つもない場合
+			Return ""
+		End If
+
+		Dim result = ""
+		Foreach attribute In attributes
+			result += " " + attribute.OuterXml
+		Next
+		Return result
+	End Function
+
 	Virtual Function InnerXmlSupportedIndent( isIndent = False As Boolean, indent = 0 As Long ) As String
 		Dim result = ""
@@ -275,5 +305,5 @@
 
 		If childNodes.Count = 0 Then
-			Return indentStr + "<" + localName + " />" + crlfStr
+			Return indentStr + "<" + localName + This.GetAttributesStr() + " />" + crlfStr
 		End If
 
@@ -281,5 +311,5 @@
 
 		' 開始タグ
-		result += indentStr + "<" + localName + ">" + crlfStr
+		result += indentStr + "<" + localName + This.GetAttributesStr() + ">" + crlfStr
 
 		' 子ノードリスト
