XmlSchemaObjectとは? わかりやすく解説

XmlSchemaObject クラス

Xml スキーマ オブジェクト モデル階層構造におけるルート クラス表しXmlSchema などのクラス基本クラスとして機能します

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

Public MustInherit Class
 XmlSchemaObject
Dim instance As XmlSchemaObject
public abstract class XmlSchemaObject
public ref class XmlSchemaObject abstract
public abstract class XmlSchemaObject
public abstract class XmlSchemaObject
使用例使用例

スキーマ オブジェクト表示する例を次に示します

Option Strict On
Option Explicit On

Imports System
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class ValidXSD

    Public Shared Sub Main()

        Dim xsd As String
 = "example.xsd"

        Dim fs As FileStream
        Dim schema As XmlSchema
        Try
            fs = New FileStream(xsd, FileMode.Open)
            schema = XmlSchema.Read(fs, New ValidationEventHandler(AddressOf
 ShowCompileError))

            Dim schemaSet As New
 XmlSchemaSet()
            AddHandler schemaSet.ValidationEventHandler, AddressOf
 ShowCompileError

            schemaSet.Add(schema)
            schemaSet.Compile()

            Dim compiledSchema As XmlSchema
 = Nothing

            For Each schema1 As
 XmlSchema In schemaSet.Schemas()
                compiledSchema = schema1
            Next

            schema = compiledSchema

            If schema.IsCompiled Then
                DisplayObjects(schema)
            End If

        Catch e As XmlSchemaException
            Console.WriteLine("LineNumber = {0}",
 e.LineNumber)
            Console.WriteLine("LinePosition = {0}",
 e.LinePosition)
            Console.WriteLine("Message = {0}", e.Message)
            Console.WriteLine("Source = {0}", e.Source)

        End Try
    End Sub 'Main


    Private Overloads Shared
 Sub DisplayObjects(ByVal o As
 Object)
        DisplayObjects(o, "")
    End Sub 'DisplayObjects

    Private Overloads Shared
 Sub DisplayObjects(ByVal o As
 Object, ByVal indent As String)
        Console.WriteLine("{0}{1}", indent, o)

        Dim property1 As PropertyInfo
        For Each property1 In
 o.GetType().GetProperties()
            If property1.PropertyType.FullName = "System.Xml.Schema.XmlSchemaObjectCollection"
 Then

                Dim childObjectCollection As
 XmlSchemaObjectCollection = CType(property1.GetValue(o, Nothing),
 XmlSchemaObjectCollection)

                Dim schemaObject As XmlSchemaObject
                For Each schemaObject In
 childObjectCollection
                    DisplayObjects(schemaObject, indent + ControlChars.Tab)
                Next schemaObject
            End If
        Next property1
    End Sub 'DisplayObjects

    Private Shared Sub ShowCompileError(ByVal
 sender As Object, ByVal
 e As ValidationEventArgs)
        Console.WriteLine("Validation Error: {0}",
 e.Message)
    End Sub 'ShowCompileError
End Class 'ValidXSD
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Reflection;

public class ValidXSD
{
    public static int Main()
    {

        string xsd = "example.xsd";

        FileStream fs;
        XmlSchema schema;
        try
        {
            fs = new FileStream(xsd, FileMode.Open);
            schema = XmlSchema.Read(fs, new ValidationEventHandler(ShowCompileError));

            XmlSchemaSet schemaSet = new XmlSchemaSet();
            schemaSet.ValidationEventHandler += new ValidationEventHandler(ShowCompileError);
            schemaSet.Add(schema);
            schemaSet.Compile();

            XmlSchema compiledSchema = null;

            foreach (XmlSchema schema1 in schemaSet.Schemas())
            {
                compiledSchema = schema1;
            }

            schema = compiledSchema;

            if (schema.IsCompiled)
            {
                DisplayObjects(schema);
            }
            return 0;
        }
        catch (XmlSchemaException e)
        {
            Console.WriteLine("LineNumber = {0}", e.LineNumber);
            Console.WriteLine("LinePosition = {0}", e.LinePosition);
            Console.WriteLine("Message = {0}", e.Message);
            Console.WriteLine("Source = {0}", e.Source);
            return -1;
        }
    }

    private static void
 DisplayObjects(object o)
    {
        DisplayObjects(o, "");
    }
    private static void
 DisplayObjects(object o, string indent)
    {
        Console.WriteLine("{0}{1}", indent, o);

        foreach (PropertyInfo property in o.GetType().GetProperties())
        {
            if (property.PropertyType.FullName == "System.Xml.Schema.XmlSchemaObjectCollection")
            {

                XmlSchemaObjectCollection childObjectCollection = (XmlSchemaObjectCollection)property.GetValue(o,
 null);

                foreach (XmlSchemaObject schemaObject in
 childObjectCollection)
                {
                    DisplayObjects(schemaObject, indent + "\t");
                }
            }
        }
    }
    private static void
 ShowCompileError(object sender, ValidationEventArgs e)
    {
        Console.WriteLine("Validation Error: {0}", e.Message);
    }
}

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

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:group name="testGroup">
  <xs:choice>
    <xs:any namespace="##any"/>
  </xs:choice>
  </xs:group>
  <xs:element name="myElement"
 >
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
      <xs:group ref="testGroup"
 />
    </xs:choice>
  </xs:complexType>
  </xs:element>
</xs:schema>
継承階層継承階層
System.Object
  System.Xml.Schema.XmlSchemaObject
     派生クラス
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSchemaObject メンバ
System.Xml.Schema 名前空間

XmlSchemaObject コンストラクタ


XmlSchemaObject プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

XmlSchemaObject クラス
System.Xml.Schema 名前空間

XmlSchemaObject メソッド


XmlSchemaObject メンバ

Xml スキーマ オブジェクト モデル階層構造におけるルート クラス表しXmlSchema などのクラス基本クラスとして機能します

XmlSchemaObject データ型公開されるメンバを以下の表に示します


プロテクト コンストラクタプロテクト コンストラクタ
  名前 説明
プロテクト メソッド XmlSchemaObject XmlSchemaObject クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XmlSchemaObject クラス
System.Xml.Schema 名前空間



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

辞書ショートカット

すべての辞書の索引

「XmlSchemaObject」の関連用語

XmlSchemaObjectのお隣キーワード
検索ランキング

   

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



XmlSchemaObjectのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS