XmlSchemaValidator.ValidateEndOfAttributes メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlSchemaValidator.ValidateEndOfAttributes メソッドの意味・解説 

XmlSchemaValidator.ValidateEndOfAttributes メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

必要なすべての属性要素コンテキスト存在するかどうか検証し要素の子内容検証するための XmlSchemaValidator オブジェクト準備します

名前空間: System.Xml.Schema
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub ValidateEndOfAttributes ( _
    schemaInfo As XmlSchemaInfo _
)
Dim instance As XmlSchemaValidator
Dim schemaInfo As XmlSchemaInfo

instance.ValidateEndOfAttributes(schemaInfo)
public void ValidateEndOfAttributes (
    XmlSchemaInfo schemaInfo
)
public:
void ValidateEndOfAttributes (
    XmlSchemaInfo^ schemaInfo
)
public void ValidateEndOfAttributes (
    XmlSchemaInfo schemaInfo
)
public function ValidateEndOfAttributes (
    schemaInfo : XmlSchemaInfo
)

パラメータ

schemaInfo

必要なすべての属性要素コンテキスト存在することが正常に検証され場合プロパティ設定される XmlSchemaInfo オブジェクト。このパラメータは、null 参照 (Visual Basic では Nothing) の場合あります

例外例外
例外種類条件

XmlSchemaValidationException

1 つ上の必要な属性が、現在の要素コンテキストで見つかりませんでした

InvalidOperationException

ValidateEndOfAttributes メソッドは、正しシーケンス呼び出されませんでした。たとえば、SkipToEndElement を呼び出した後で ValidateEndOfAttributes呼び出した場合該当します

ArgumentNullException

指定されパラメータ1 つ以上が null 参照 (Visual Basic では Nothing) です。

解説解説
使用例使用例

contosoBooks.xsd スキーマcontosoBooks.xml ファイル検証する例を次に示します。この例では、XmlSerializer クラス使用して contosoBooks.xml ファイルを逆シリアル化し、ノードの値を XmlSchemaValidator クラスメソッド渡します

Imports System
Imports System.Xml
Imports System.Xml.Schema
Imports System.Xml.Serialization

Namespace Microsoft.Samples.Xml.Schema

    Class XmlSchemaValidatorExamples

        Shared Sub Main()

            ' The XML document to deserialize into the XmlSerializer
 object.
            Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml")

            ' The XmlSerializer object.
            Dim serializer As XmlSerializer
 = New XmlSerializer(GetType(ContosoBooks))
            Dim books As ContosoBooks = CType(serializer.Deserialize(reader),
 ContosoBooks)

            ' The XmlSchemaSet object containing the schema used to
 validate the XML document.
            Dim schemaSet As XmlSchemaSet =
 New XmlSchemaSet()
            schemaSet.Add("http://www.contoso.com/books",
 "contosoBooks.xsd")

            ' The XmlNamespaceManager object used to handle namespaces.
            Dim manager As XmlNamespaceManager
 = New XmlNamespaceManager(reader.NameTable)

            ' Assign a ValidationEventHandler to handle schema validation
 warnings and errors.
            Dim validator As XmlSchemaValidator
 = New XmlSchemaValidator(reader.NameTable, schemaSet, manager,
 XmlSchemaValidationFlags.None)
            'validator.ValidationEventHandler += New ValidationEventHandler(SchemaValidationEventHandler)
            AddHandler validator.ValidationEventHandler, AddressOf
 SchemaValidationEventHandler

            ' Initialize the XmlSchemaValidator object.
            validator.Initialize()

            ' Validate the bookstore element, verify that all required
 attributes are present
            ' and prepare to validate child content.
            validator.ValidateElement("bookstore",
 "http://www.contoso.com/books", Nothing)
            validator.ValidateEndOfAttributes(Nothing)

            ' Get the next exptected element in the bookstore context.
            Dim particles() As XmlSchemaParticle
 = validator.GetExpectedParticles()
            Dim nextElement As XmlSchemaElement
 = particles(0)
            Console.WriteLine("Expected Element: '{0}'", nextElement.Name)

            For Each book As
 BookType In books.book
                ' Validate the book element.
                validator.ValidateElement("book",
 "http://www.contoso.com/books", Nothing)

                ' Get the exptected attributes for the book element.
                Console.Write(vbCrLf & "Expected attributes:
 ")
                Dim attributes() As XmlSchemaAttribute
 = validator.GetExpectedAttributes()
                For Each attribute As
 XmlSchemaAttribute In attributes
                    Console.Write("'{0}' ", attribute.Name)
                Next
                Console.WriteLine()

                ' Validate the genre attribute and display it's post
 schema validation information.
                If Not book.Genre Is
 Nothing Then
                    validator.ValidateAttribute("genre",
 "", book.Genre, schemaInfo)
                End If
                DisplaySchemaInfo()

                ' Validate the publicationdate attribute and display
 it's post schema validation information.
                If Not book.PublicationDate
 = Nothing Then
                    validator.ValidateAttribute("publicationdate",
 "", dateTimeGetter(book.PublicationDate), schemaInfo)
                End If
                DisplaySchemaInfo()

                ' Validate the ISBN attribute and display it's post
 schema validation information.
                If Not book.Isbn Is
 Nothing Then
                    validator.ValidateAttribute("ISBN",
 "", book.Isbn, schemaInfo)
                End If
                DisplaySchemaInfo()

                ' Verify that all required attributes of the book element
 are present
                ' and prepare to validate child content.
                validator.ValidateEndOfAttributes(Nothing)

                ' Validate the title element and it's content.
                validator.ValidateElement("title",
 "http://www.contoso.com/books", Nothing)
                validator.ValidateEndElement(Nothing, book.Title)

                ' Validate the author element, verify that all required
 attributes are present
                ' and prepare to validate child content.
                validator.ValidateElement("author",
 "http://www.contoso.com/books", Nothing)
                validator.ValidateEndOfAttributes(Nothing)

                If Not book.Author.Name Is
 Nothing Then
                    ' Validate the name element and it's content.
                    validator.ValidateElement("name",
 "http://www.contoso.com/books", Nothing)
                    validator.ValidateEndElement(Nothing, book.Author.Name)
                End If

                If Not book.Author.FirstName
 Is Nothing Then
                    ' Validate the first-name element and it's content.
                    validator.ValidateElement("first-name",
 "http://www.contoso.com/books", Nothing)
                    validator.ValidateEndElement(Nothing, book.Author.FirstName)

                End If

                If Not book.Author.LastName
 Is Nothing Then
                    ' Validate the last-name element and it's content.
                    validator.ValidateElement("last-name",
 "http://www.contoso.com/books", Nothing)
                    validator.ValidateEndElement(Nothing, book.Author.LastName)
                End If

                ' Validate the content of the author element.
                validator.ValidateEndElement(Nothing)

                ' Validate the price element and it's content.
                validator.ValidateElement("price",
 "http://www.contoso.com/books", Nothing)
                validator.ValidateEndElement(Nothing, book.Price)

                ' Validate the content of the book element.
                validator.ValidateEndElement(Nothing)
            Next

            ' Validate the content of the bookstore element.
            validator.ValidateEndElement(Nothing)

            ' Close the XmlReader object.
            reader.Close()

        End Sub

        Shared schemaInfo As XmlSchemaInfo
 = New XmlSchemaInfo()
        Shared dateTimeGetterContent As Object

        Shared Function dateTimeGetterHandle()
 As Object

            Return dateTimeGetterContent

        End Function

        Shared Function dateTimeGetter(ByVal
 dateTime As DateTime) As XmlValueGetter

            dateTimeGetterContent = dateTime
            Return New XmlValueGetter(AddressOf
 dateTimeGetterHandle)

        End Function

        Shared Sub DisplaySchemaInfo()

            If Not schemaInfo.SchemaElement
 Is Nothing Then
                Console.WriteLine("Element '{0}' with type '{1}'
 is '{2}'", schemaInfo.SchemaElement.Name, schemaInfo.SchemaType, schemaInfo.Validity)
            ElseIf Not schemaInfo.SchemaAttribute
 Is Nothing Then
                Console.WriteLine("Attribute '{0}' with type '{1}'
 is '{2}'", schemaInfo.SchemaAttribute.Name, schemaInfo.SchemaType, schemaInfo.Validity)
            End If

        End Sub

        Shared Sub SchemaValidationEventHandler(ByVal
 sender As Object, ByVal
 e As ValidationEventArgs)

            Select Case e.Severity
                Case XmlSeverityType.Error
                    Console.WriteLine(vbCrLf & "Error: {0}",
 e.Message)
                    Exit Sub
                Case XmlSeverityType.Warning
                    Console.WriteLine(vbCrLf & "Warning: {0}",
 e.Message)
                    Exit Sub
            End Select

        End Sub

    End Class

    <XmlRootAttribute("bookstore", Namespace:="http://www.contoso.com/books",
 IsNullable:=False)> _
    Public Class ContosoBooks

        <XmlElementAttribute("book")> _
        Public book() As BookType

    End Class

    Public Class BookType

        <XmlAttributeAttribute("genre")> _
        Public Genre As String

        <XmlAttributeAttribute("publicationdate",
 DataType:="date")> _
        Public PublicationDate As DateTime

        <XmlAttributeAttribute("ISBN")> _
        Public Isbn As String

        <XmlElementAttribute("title")> _
        Public Title As String

        <XmlElementAttribute("author")> _
        Public Author As BookAuthor

        <XmlElementAttribute("price")> _
        Public Price As Decimal

    End Class

    Public Class BookAuthor

        <XmlElementAttribute("name")> _
        Public Name As String

        <XmlElementAttribute("first-name")>
 _
        Public FirstName As String

        <XmlElementAttribute("last-name")> _
        Public LastName As String

    End Class

End Namespace
using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace Microsoft.Samples.Xml.Schema
{
    class XmlSchemaValidatorExamples
    {
        static void Main()
        {
            // The XML document to deserialize into the XmlSerializer
 object.
            XmlReader reader = XmlReader.Create("contosoBooks.xml");

            // The XmlSerializer object.
            XmlSerializer serializer = new XmlSerializer(typeof(ContosoBooks));
            ContosoBooks books = (ContosoBooks)serializer.Deserialize(reader);

            // The XmlSchemaSet object containing the schema used to
 validate the XML document.
            XmlSchemaSet schemaSet = new XmlSchemaSet();
            schemaSet.Add("http://www.contoso.com/books",
 "contosoBooks.xsd");

            // The XmlNamespaceManager object used to handle namespaces.
            XmlNamespaceManager manager = new XmlNamespaceManager(reader.NameTable);

            // Assign a ValidationEventHandler to handle schema validation
 warnings and errors.
            XmlSchemaValidator validator = new XmlSchemaValidator(reader.NameTable,
 schemaSet, manager, XmlSchemaValidationFlags.None);
            validator.ValidationEventHandler += new ValidationEventHandler(SchemaValidationEventHandler);

            // Initialize the XmlSchemaValidator object.
            validator.Initialize();

            // Validate the bookstore element, verify that all required
 attributes are present
            // and prepare to validate child content.
            validator.ValidateElement("bookstore", "http://www.contoso.com/books",
 null);
            validator.ValidateEndOfAttributes(null);

            // Get the next exptected element in the bookstore context.
            XmlSchemaParticle[] particles = validator.GetExpectedParticles();
            XmlSchemaElement nextElement = particles[0] as XmlSchemaElement;
            Console.WriteLine("Expected Element: '{0}'", nextElement.Name);

            foreach (BookType book in books.Book)
            {
                // Validate the book element.
                validator.ValidateElement("book", "http://www.contoso.com/books",
 null);

                // Get the exptected attributes for the book element.
                Console.Write("\nExpected attributes: ");
                XmlSchemaAttribute[] attributes = validator.GetExpectedAttributes();
                foreach (XmlSchemaAttribute attribute in
 attributes)
                {
                    Console.Write("'{0}' ", attribute.Name);
                }
                Console.WriteLine();

                // Validate the genre attribute and display it's post
 schema validation information.
                if (book.Genre != null)
                {
                    validator.ValidateAttribute("genre", "",
 book.Genre, schemaInfo);
                }
                DisplaySchemaInfo();

                // Validate the publicationdate attribute and display
 it's post schema validation information.
                if (book.PublicationDate != null)
                {
                    validator.ValidateAttribute("publicationdate", "",
 dateTimeGetter(book.PublicationDate), schemaInfo);
                }
                DisplaySchemaInfo();

                // Validate the ISBN attribute and display it's post
 schema validation information.
                if (book.Isbn != null)
                {
                    validator.ValidateAttribute("ISBN", "", book.Isbn,
 schemaInfo);
                }
                DisplaySchemaInfo();

                // Verify that all required attributes of the book element
 are present
                // and prepare to validate child content.
                validator.ValidateEndOfAttributes(null);

                // Validate the title element and it's content.
                validator.ValidateElement("title", "http://www.contoso.com/books",
 null);
                validator.ValidateEndElement(null, book.Title);

                // Validate the author element, verify that all required
 attributes are present
                // and prepare to validate child content.
                validator.ValidateElement("author", "http://www.contoso.com/books",
 null);
                validator.ValidateEndOfAttributes(null);

                if (book.Author.Name != null)
                {
                    // Validate the name element and it's content.
                    validator.ValidateElement("name", "http://www.contoso.com/books",
 null);
                    validator.ValidateEndElement(null, book.Author.Name);
                }

                if (book.Author.FirstName != null)
                {
                    // Validate the first-name element and it's content.
                    validator.ValidateElement("first-name", "http://www.contoso.com/books",
 null);
                    validator.ValidateEndElement(null, book.Author.FirstName);

                }

                if (book.Author.LastName != null)
                {
                    // Validate the last-name element and it's content.
                    validator.ValidateElement("last-name", "http://www.contoso.com/books",
 null);
                    validator.ValidateEndElement(null, book.Author.LastName);
                }

                // Validate the content of the author element.
                validator.ValidateEndElement(null);

                // Validate the price element and it's content.
                validator.ValidateElement("price", "http://www.contoso.com/books",
 null);
                validator.ValidateEndElement(null, book.Price);

                // Validate the content of the book element.
                validator.ValidateEndElement(null);
            }

            // Validate the content of the bookstore element.
            validator.ValidateEndElement(null);

            // Close the XmlReader object.
            reader.Close();
        }

        static XmlSchemaInfo schemaInfo = new
 XmlSchemaInfo();
        static object dateTimeGetterContent;

        static object dateTimeGetterHandle()
        {
            return dateTimeGetterContent;
        }

        static XmlValueGetter dateTimeGetter(DateTime dateTime)
        {
            dateTimeGetterContent = dateTime;
            return new XmlValueGetter(dateTimeGetterHandle);
        }

        static void DisplaySchemaInfo()
        {
            if (schemaInfo.SchemaElement != null)
            {
                Console.WriteLine("Element '{0}' with type '{1}' is '{2}'"
,
                    schemaInfo.SchemaElement.Name, schemaInfo.SchemaType, schemaInfo.Validity);
            }
            else if (schemaInfo.SchemaAttribute
 != null)
            {
                Console.WriteLine("Attribute '{0}' with type '{1}' is '{2}'"
,
                    schemaInfo.SchemaAttribute.Name, schemaInfo.SchemaType, schemaInfo.Validity);
            }
        }

        static void SchemaValidationEventHandler(object
 sender, ValidationEventArgs e)
        {
            switch (e.Severity)
            {
                case XmlSeverityType.Error:
                    Console.WriteLine("\nError: {0}", e.Message);
                    break;
                case XmlSeverityType.Warning:
                    Console.WriteLine("\nWarning: {0}", e.Message);
                    break;
            }
        }
    }

    [XmlRootAttribute("bookstore", Namespace = "http://www.contoso.com/books",
 IsNullable = false)]
    public class ContosoBooks
    {
        [XmlElementAttribute("book")]
        public BookType[] Book;
    }

    public class BookType
    {
        [XmlAttributeAttribute("genre")]
        public string Genre;

        [XmlAttributeAttribute("publicationdate", DataType = "date")]
        public DateTime PublicationDate;

        [XmlAttributeAttribute("ISBN")]
        public string Isbn;

        [XmlElementAttribute("title")]
        public string Title;

        [XmlElementAttribute("author")]
        public BookAuthor Author;

        [XmlElementAttribute("price")]
        public Decimal Price;
    }

    public class BookAuthor
    {
        [XmlElementAttribute("name")]
        public string Name;

        [XmlElementAttribute("first-name")]
        public string FirstName;

        [XmlElementAttribute("last-name")]
        public string LastName;
    }
}

この例では、入力として、contosoBooks.xml というファイル使用してます。

<bookstore xmlns="http://www.contoso.com/books">
    <book genre="autobiography"
 publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The
 Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17"
 ISBN="0-201-63361-2">
        <title>The
 Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy"
 publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The
 Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

またこの例では、入力として、contosoBooks.xsd使用してます。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified"
 elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bookstore">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded"
 name="book">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element
 name="title" type="xs:string" />
                            <xs:element
 name="author">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element
 minOccurs="0" name="name" type="xs:string" />
                                        <xs:element
 minOccurs="0" name="first-name" type="xs:string"
 />
                                        <xs:element
 minOccurs="0" name="last-name" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element
 name="price" type="xs:decimal" />
                        </xs:sequence>
                        <xs:attribute
 name="genre" type="xs:string" use="required" />
                        <xs:attribute
 name="publicationdate" type="xs:date" use="required"
 />
                        <xs:attribute
 name="ISBN" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSchemaValidator クラス
XmlSchemaValidator メンバ
System.Xml.Schema 名前空間
XmlSchemaInfo クラス


このページでは「.NET Framework クラス ライブラリ リファレンス」からXmlSchemaValidator.ValidateEndOfAttributes メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からXmlSchemaValidator.ValidateEndOfAttributes メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からXmlSchemaValidator.ValidateEndOfAttributes メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

XmlSchemaValidator.ValidateEndOfAttributes メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlSchemaValidator.ValidateEndOfAttributes メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS