エクスポート (0) 印刷
すべて展開
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

方法 : XML 要素および XML 属性名を修飾する

コード例

XmlSerializerNamespaces クラスのインスタンスに格納される XML 名前空間は、W3C (World Wide Web Consortium) (www.w3.org) の仕様『Namespaces in XML』に準拠する必要があります。

XML 名前空間を使用すると、XML ドキュメント内の XML 要素および XML 属性の名前を修飾できます。 修飾名は、プレフィックスとローカル名がコロンで区切られた構成になっています。 プレフィックスはプレースホルダーとしてのみ機能し、名前空間を指定する URI に割り当てられます。 汎用的に管理される URI 名前空間とローカル名を組み合わせることにより、生成される名前は、必ず汎用的に一意になります。

XmlSerializerNamespaces のインスタンスを作成し、そのオブジェクトに名前空間のペアを追加することで、XML ドキュメントで使用されるプレフィックスを指定できます。

XML ドキュメントにおける修飾名を作成するには

  1. XmlSerializerNamespaces クラスのインスタンスを作成します。

  2. すべてのプレフィックスと名前空間のペアを XmlSerializerNamespaces に追加します。

  3. XmlSerializer が XML ドキュメントにシリアル化する各メンバーやクラスに、適切な System.Xml.Serialization 属性を適用します。

    適用できる属性は、XmlAnyElementAttributeXmlArrayAttributeXmlArrayItemAttributeXmlAttributeAttributeXmlElementAttributeXmlRootAttribute、および XmlTypeAttribute です。

  4. 各属性の Namespace プロパティを、XmlSerializerNamespaces のいずれかの名前空間値に設定します。

  5. XmlSerializerNamespaces XmlSerializerSerialize メソッドに渡します。

XmlSerializerNamespaces を作成し、このオブジェクトにプレフィックスと名前空間のペアを 2 つ追加する例を次に示します。 このコードでは、Books クラスのインスタンスをシリアル化するために使用される XmlSerializer を作成します。 また、XmlSerializerNamespaces を使用して Serialize メソッドを呼び出し、XML にプレフィックス付き名前空間を含めることができるようにします。

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
    
public class Run
{
    public static void Main()
    {
        Run test = new Run();
        test.SerializeObject("XmlNamespaces.xml");
    }
    public void SerializeObject(string filename)
    {
        XmlSerializer mySerializer = new XmlSerializer(typeof(Books));
        // Writing a file requires a TextWriter.
        TextWriter myWriter = new StreamWriter(filename);

        // Creates an XmlSerializerNamespaces and adds two
        // prefix-namespace pairs.
        XmlSerializerNamespaces myNamespaces = 
        new XmlSerializerNamespaces();
        myNamespaces.Add("books", "http://www.cpandl.com");
        myNamespaces.Add("money", "http://www.cohowinery.com");

        // Creates a Book.
        Book myBook = new Book();
        myBook.TITLE = "A Book Title";
        Price myPrice = new Price();
        myPrice.price = (decimal) 9.95;
        myPrice.currency = "US Dollar";
        myBook.PRICE = myPrice;
        Books myBooks = new Books();
        myBooks.Book = myBook;
        mySerializer.Serialize(myWriter,myBooks,myNamespaces);
        myWriter.Close();
    }
}

public class Books
{
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public Book Book;
}

[XmlType(Namespace ="http://www.cpandl.com")]
public class Book
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string TITLE;
    [XmlElement(Namespace ="http://www.cohowinery.com")]
    public Price PRICE;
}

コミュニティの追加

表示:
© 2014 Microsoft