XmlSchemaInfo.SchemaType プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlSchemaInfo.SchemaType プロパティの意味・解説 

XmlSchemaInfo.SchemaType プロパティ

メモ : このプロパティは、.NET Framework version 2.0新しく追加されたものです。

この検証済み XML ノード静的XML スキーマ定義言語 (XSD) スキーマ型を取得または設定します

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

Dim instance As XmlSchemaInfo
Dim value As XmlSchemaType

value = instance.SchemaType

instance.SchemaType = value
public XmlSchemaType SchemaType { get; set;
 }
public:
virtual property XmlSchemaType^ SchemaType {
    XmlSchemaType^ get () sealed;
    void set (XmlSchemaType^ value);
}
/** @property */
public final XmlSchemaType get_SchemaType ()

/** @property */
public void set_SchemaType (XmlSchemaType value)

プロパティ
XmlSchemaType オブジェクト

解説解説

XML ノード静的な型は、XSD スキーマ宣言された型です。

使用例使用例

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>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSchemaInfo クラス
XmlSchemaInfo メンバ
System.Xml.Schema 名前空間


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

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

辞書ショートカット

すべての辞書の索引

XmlSchemaInfo.SchemaType プロパティのお隣キーワード
検索ランキング

   

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



XmlSchemaInfo.SchemaType プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS