XmlTextWriter.WriteQualifiedName メソッド
名前空間の限定名を書き込みます。このメソッドは、指定した名前空間のスコープ内にあるプリフィックスを検索します。
Overrides Public Sub WriteQualifiedName( _
ByVal localName As String, _ ByVal ns As String _)
[C#]
public override void WriteQualifiedName(stringlocalName,stringns);
[C++]
public: void WriteQualifiedName(String* localName,String* ns);
[JScript]
public override function WriteQualifiedName(
localName : String,ns : String);
パラメータ
- localName
書き込むローカル名。 - ns
名前に関連付ける名前空間 URI。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | localName が null 参照 (Visual Basic では Nothing) または String.Empty です。
localName が、W3C の名前空間の仕様に準拠した有効な名前ではありません。 |
解説
たとえば、次に示すような C# コードです。
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("root");
writer.WriteAttributeString("xmlns","x",null,"urn:abc");
writer.WriteStartElement("item");
writer.WriteStartAttribute("href",null);
writer.WriteString("#");
writer.WriteQualifiedName("test","urn:abc");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
次の出力を生成します。
<root xmlns:x="urn:abc">
<item href="#x:test"/>
</root>
ns を現在の既定の名前空間に割り当てると、プリフィックスは生成されません。
属性値を書き込むときに、 ns が見つからないと、このメソッドはプリフィックスを生成します。要素の内容を書き込むときに、 ns が見つからないと、このメソッドは例外をスローします。
このライタが名前空間をサポートしている場合 (Namespaces を true に設定)、このメソッドは、その名前が W3C 勧告『Namespaces in XML』(http://www.w3.org/TR/REC-xml-names) に準拠した有効な名前かどうかも確認します。
使用例
[Visual Basic, C#, C++] XSD スキーマの一部を書き込む例を次に示します。
Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Private Shared filename As String = "sampledata.xml"
Public Shared Sub Main()
Dim writer As XmlTextWriter = Nothing
writer = New XmlTextWriter(filename, Nothing)
' Use indenting for readability.
writer.Formatting = Formatting.Indented
' Write the root element.
writer.WriteStartElement("schema")
' Write the namespace declarations.
writer.WriteAttributeString("xmlns", Nothing, "http://www.w3.org/2001/XMLSchema")
writer.WriteAttributeString("xmlns", "po", Nothing, "https://contoso.com/po")
writer.WriteStartElement("element")
writer.WriteAttributeString("name", "purchaseOrder")
' Write the type attribute.
writer.WriteStartAttribute(Nothing, "type", Nothing)
writer.WriteQualifiedName("PurchaseOrder", "https://contoso.com/po")
writer.WriteEndAttribute()
writer.WriteEndElement()
' Write the close tag for the root element.
writer.WriteEndElement()
' Write the XML to file and close the writer.
writer.Flush()
writer.Close()
' Read the file back in and parse to ensure well formed XML.
Dim doc As New XmlDocument()
' Preserve white space for readability.
doc.PreserveWhitespace = True
' Load the file.
doc.Load(filename)
' Write the XML content to the console.
Console.Write(doc.InnerXml)
End Sub 'Main
End Class 'Sample
[C#]
using System;
using System.IO;
using System.Xml;
public class Sample
{
private const string filename = "sampledata.xml";
public static void Main()
{
XmlTextWriter writer = null;
writer = new XmlTextWriter (filename, null);
// Use indenting for readability.
writer.Formatting = Formatting.Indented;
// Write the root element.
writer.WriteStartElement("schema");
// Write the namespace declarations.
writer.WriteAttributeString("xmlns", null,"http://www.w3.org/2001/XMLSchema");
writer.WriteAttributeString("xmlns","po",null,"https://contoso.com/po");
writer.WriteStartElement("element");
writer.WriteAttributeString("name", "purchaseOrder");
// Write the type attribute.
writer.WriteStartAttribute(null,"type", null);
writer.WriteQualifiedName("PurchaseOrder", "https://contoso.com/po");
writer.WriteEndAttribute();
writer.WriteEndElement();
// Write the close tag for the root element.
writer.WriteEndElement();
// Write the XML to file and close the writer.
writer.Flush();
writer.Close();
// Read the file back in and parse to ensure well formed XML.
XmlDocument doc = new XmlDocument();
// Preserve white space for readability.
doc.PreserveWhitespace = true;
// Load the file.
doc.Load(filename);
// Write the XML content to the console.
Console.Write(doc.InnerXml);
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlTextWriter* writer = 0;
String* filename = S"sampledata.xml";
writer = new XmlTextWriter (filename, 0);
// Use indenting for readability.
writer->Formatting = Formatting::Indented;
// Write the root element.
writer->WriteStartElement(S"schema");
// Write the namespace declarations.
writer->WriteAttributeString(S"xmlns", 0,S"http://www.w3.org/2001/XMLSchema");
writer->WriteAttributeString(S"xmlns",S"po",0,S"https://contoso.com/po");
writer->WriteStartElement(S"element");
writer->WriteAttributeString(S"name", S"purchaseOrder");
// Write the type attribute.
writer->WriteStartAttribute(0,S"type", 0);
writer->WriteQualifiedName(S"PurchaseOrder", S"https://contoso.com/po");
writer->WriteEndAttribute();
writer->WriteEndElement();
// Write the close tag for the root element.
writer->WriteEndElement();
// Write the XML to file and close the writer.
writer->Flush();
writer->Close();
// Read the file back in and parse to ensure well formed XML.
XmlDocument* doc = new XmlDocument();
// Preserve white space for readability.
doc->PreserveWhitespace = true;
// Load the file.
doc->Load(filename);
// Write the XML content to the console.
Console::Write(doc->InnerXml);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard