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

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > XmlSchemaの意味・解説 

エックスエムエル‐スキーマ【XMLスキーマ】

読み方:えっくすえむえるすきーま

《XML Schema》XML記述する文書論理的な構造の定義に用いられるスキーマ言語WWWコンソーシアム標準化進めている。


XML スキーマ (XSD) [XML Schema (XSD)]

XML スキーマ ドキュメント作成使用する W3C (World Wide Web Consortium) の標準言語。XML スキーマは、定義済みの型のセット (stringdateTimedecimal など) と、新しい型を定義するための XML 言語 (complexType、minOccurs、element など) の 2 つ部分構成されます。

XML Schema

読み方エックスエムエル スキーマ

XML Schemaとは、構造化文書記述するためのマークアップ言語について、その概容スキーマ)を定義する言語であるスキーマ言語中でもXML文書の構造定義する言語のことである。XML Schemaは2001年5月W3Cによって勧告された。

XMLマークアップ言語作成するための言語メタ言語)であり、それ自身では個々タグの意味関連性などが定義されていないXML用いて実際に文書作成するには、文書中で用いられるタグ属性どのようなのであるのかを、具体的な構造として定義しなければならない

XML Schema以前XML用いられてきたスキーマ言語は、DTD呼ばれるXML母体となったSGML言語用いられてきたスキーマ言語であった。しかし、DTDではデータ型が定義できなかったり、あるいはDTD文法XMLとは特に関係ないものであったりと、様々な点で困難が指摘されていた。その点、XML Schemaは、XMLと同じ文法持っており(スキーマ自体XML記述されいるから)、またデータ型の定義や名前空間XML名前空間)が扱えるなど、XML機能最大限引き出せるものになっている

なお、XML Schemaと同様の技術RELAX呼ばれる仕様がある。RELAX日本開発されたもので、XML Schemaに劣らない記述性と構造シンプルさをかね備えているといわれ、国際標準化機構ISO)の標準となることを目指し普及活動推進されている。

プログラミングのほかの用語一覧
XML:  XLink  XML  XML Master:Professional  XML Schema  XML名前空間  XMLパーサ  XMLプロトコル

XmlSchema クラス

W3C (World Wide Web Consortium) の『XML Schema Part 1: Structures』および『XML Schema Part 2: Datatypes』の仕様指定されている XML スキーマインメモリ表現です。

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

Public Class XmlSchema
    Inherits XmlSchemaObject
public class XmlSchema : XmlSchemaObject
public ref class XmlSchema : public
 XmlSchemaObject
public class XmlSchema extends XmlSchemaObject
public class XmlSchema extends
 XmlSchemaObject
解説解説
使用例使用例

スキーマ定義を作成する例を次に示します

Option Explicit On
Option Strict On

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

Class XMLSchemaExamples
    Public Shared Sub Main()
        Dim schema As New
 XmlSchema()

        ' <xs:element name="cat" type="xs:string"/>
        Dim elementCat As New
 XmlSchemaElement()
        schema.Items.Add(elementCat)
        elementCat.Name = "cat"
        elementCat.SchemaTypeName = New XmlQualifiedName("string",
 "http://www.w3.org/2001/XMLSchema")

        ' <xs:element name="dog" type="xs:string"/>
        Dim elementDog As New
 XmlSchemaElement()
        schema.Items.Add(elementDog)
        elementDog.Name = "dog"
        elementDog.SchemaTypeName = New XmlQualifiedName("string",
 "http://www.w3.org/2001/XMLSchema")

        ' <xs:element name="redDog" substitutionGroup="dog"
 />
        Dim elementRedDog As New
 XmlSchemaElement()
        schema.Items.Add(elementRedDog)
        elementRedDog.Name = "redDog"
        elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")

        ' <xs:element name="brownDog" substitutionGroup
 ="dog" />
        Dim elementBrownDog As New
 XmlSchemaElement()
        schema.Items.Add(elementBrownDog)
        elementBrownDog.Name = "brownDog"
        elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")

        ' <xs:element name="pets">
        Dim elementPets As New
 XmlSchemaElement()
        schema.Items.Add(elementPets)
        elementPets.Name = "pets"

        ' <xs:complexType>
        Dim complexType As New
 XmlSchemaComplexType()
        elementPets.SchemaType = complexType

        ' <xs:choice minOccurs="0" maxOccurs="unbounded">
        Dim choice As New
 XmlSchemaChoice()
        complexType.Particle = choice
        choice.MinOccurs = 0
        choice.MaxOccursString = "unbounded"

        ' <xs:element ref="cat"/>
        Dim catRef As New
 XmlSchemaElement()
        choice.Items.Add(catRef)
        catRef.RefName = New XmlQualifiedName("cat")

        ' <xs:element ref="dog"/>
        Dim dogRef As New
 XmlSchemaElement()
        choice.Items.Add(dogRef)
        dogRef.RefName = New XmlQualifiedName("dog")

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

        schemaSet.Add(schema)
        schemaSet.Compile()

        Dim compiledSchema As XmlSchema = Nothing

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

        Dim nsmgr As New
 XmlNamespaceManager(New NameTable())
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
        compiledSchema.Write(Console.Out, nsmgr)


    End Sub 'Main


    Public Shared Sub ValidationCallbackOne(ByVal
 sender As Object, ByVal
 args As ValidationEventArgs)
        Console.WriteLine(args.Message)
    End Sub 'ValidationCallbackOne
End Class 'XMLSchemaExamples
using System;
using System.Xml;
using System.Xml.Schema;

class XMLSchemaExamples
{
    public static void Main()
    {

        XmlSchema schema = new XmlSchema();

        // <xs:element name="cat" type="xs:string"/>
        XmlSchemaElement elementCat = new XmlSchemaElement();
        schema.Items.Add(elementCat);
        elementCat.Name = "cat";
        elementCat.SchemaTypeName = new XmlQualifiedName("string",
 "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="dog" type="xs:string"/>
        XmlSchemaElement elementDog = new XmlSchemaElement();
        schema.Items.Add(elementDog);
        elementDog.Name = "dog";
        elementDog.SchemaTypeName = new XmlQualifiedName("string",
 "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="redDog" substitutionGroup="dog"
 />
        XmlSchemaElement elementRedDog = new XmlSchemaElement();
        schema.Items.Add(elementRedDog);
        elementRedDog.Name = "redDog";
        elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");

        // <xs:element name="brownDog" substitutionGroup
 ="dog" />
        XmlSchemaElement elementBrownDog = new XmlSchemaElement();
        schema.Items.Add(elementBrownDog);
        elementBrownDog.Name = "brownDog";
        elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");


        // <xs:element name="pets">
        XmlSchemaElement elementPets = new XmlSchemaElement();
        schema.Items.Add(elementPets);
        elementPets.Name = "pets";

        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();
        elementPets.SchemaType = complexType;

        // <xs:choice minOccurs="0" maxOccurs="unbounded">
        XmlSchemaChoice choice = new XmlSchemaChoice();
        complexType.Particle = choice;
        choice.MinOccurs = 0;
        choice.MaxOccursString = "unbounded";

        // <xs:element ref="cat"/>
        XmlSchemaElement catRef = new XmlSchemaElement();
        choice.Items.Add(catRef);
        catRef.RefName = new XmlQualifiedName("cat");

        // <xs:element ref="dog"/>
        XmlSchemaElement dogRef = new XmlSchemaElement();
        choice.Items.Add(dogRef);
        dogRef.RefName = new XmlQualifiedName("dog");

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

        XmlSchema compiledSchema = null;

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

        XmlNamespaceManager nsmgr = new XmlNamespaceManager(new
 NameTable());
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        compiledSchema.Write(Console.Out, nsmgr);
    }

    public static void ValidationCallbackOne(object
 sender, ValidationEventArgs args)
    {
        Console.WriteLine(args.Message);
    }
}

前述コード例に対して生成される XML ファイル次に示します

<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="cat" type="xs:string"/>
    <xs:element name="dog" type="xs:string"/>
    <xs:element name="redDog"
 type="xs:string" substitutionGroup="dog"/>
    <xs:element name="brownDog"
 type="xs:string" substitutionGroup ="dog" />

    <xs:element name="pets">
      <xs:complexType>
        <xs:choice minOccurs="0"
 maxOccurs="unbounded">
          <xs:element ref="cat"/>
          <xs:element ref="dog"/>
        </xs:choice>
      </xs:complexType>
    </xs:element>
</xs:schema>
継承階層継承階層
System.Object
   System.Xml.Schema.XmlSchemaObject
    System.Xml.Schema.XmlSchema
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlSchema コンストラクタ


XmlSchema フィールド


パブリック フィールドパブリック フィールド

参照参照

関連項目

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

その他の技術情報

XML スキーマ使用
XML Schema Part 1: Structures
XML Schema Part 2: Datatypes

XmlSchema プロパティ


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

  名前 説明
パブリック プロパティ LineNumber  schema 要素参照するファイル行番号取得または設定します。 ( XmlSchemaObject から継承されます。)
パブリック プロパティ LinePosition  schema 要素参照するファイル行番号取得または設定します。 ( XmlSchemaObject から継承されます。)
パブリック プロパティ Namespaces  このスキーマ オブジェクト一緒に使用する XmlSerializerNamespaces を取得または設定します。 ( XmlSchemaObject から継承されます。)
パブリック プロパティ Parent  この XmlSchemaObject の親を取得または設定します。 ( XmlSchemaObject から継承されます。)
パブリック プロパティ SourceUri  スキーマ読み込んだファイルソース位置取得または設定します。 ( XmlSchemaObject から継承されます。)
パブリック プロパティ Version スキーマバージョン取得または設定します
参照参照

関連項目

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

その他の技術情報

XML スキーマ使用
XML Schema Part 1: Structures
XML Schema Part 2: Datatypes

XmlSchema メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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

その他の技術情報

XML スキーマ使用
XML Schema Part 1: Structures
XML Schema Part 2: Datatypes

XmlSchema メンバ

W3C (World Wide Web Consortium) の『XML Schema Part 1: Structures』および『XML Schema Part 2: Datatypes』の仕様指定されている XML スキーマインメモリ表現です。

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


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド XmlSchema XmlSchema クラス新しインスタンス初期化します。
パブリック フィールドパブリック フィールド
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ LineNumber  schema 要素参照するファイル行番号取得または設定します。(XmlSchemaObject から継承されます。)
パブリック プロパティ LinePosition  schema 要素参照するファイル行番号取得または設定します。(XmlSchemaObject から継承されます。)
パブリック プロパティ Namespaces  このスキーマ オブジェクト一緒に使用する XmlSerializerNamespaces を取得または設定します。(XmlSchemaObject から継承されます。)
パブリック プロパティ Parent  この XmlSchemaObject の親を取得または設定します。(XmlSchemaObject から継承されます。)
パブリック プロパティ SourceUri  スキーマ読み込んだファイルソース位置取得または設定します。(XmlSchemaObject から継承されます。)
パブリック プロパティ Version スキーマバージョン取得または設定します
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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

その他の技術情報

XML スキーマ使用
XML Schema Part 1: Structures
XML Schema Part 2: Datatypes

XML Schema

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/05 19:25 UTC 版)

XML Schema(XMLスキーマ)は、XML文書の論理的構造を定義する為に開発されたスキーマ言語の一つ。現在、W3Cが開発・標準化にあたっている。

元々XMLのスキーマ言語としてはSGML用のスキーマ言語であるDTDが使われていたが、要素のデータ型が定義できない、文法がXMLと全く異なっている等、XMLでは使いづらい面があった。そこでマイクロソフトの「XML Data」やCommerceOne社の「SOX」等の提案を受けたW3Cが、1998年11月にXML Schemaの仕様策定を始めた。

XML Schema自体がXMLにより記述される仕様となっていること、データ型XML名前空間の定義が扱えることからDTDよりもXMLに適したスキーマ言語となっている。しかし、複数の業界有力企業が仕様の策定に参加して、各社の思惑が絡み合い、あまりに多くの機能を取り込んだ為に、標準化は難航し、複雑な仕様となってしまっている。[誰?]

脚注

関連項目

外部リンク


スキーマ言語

(XmlSchema から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/09 07:08 UTC 版)

スキーマ言語(スキーマげんご)はスキーマ記述を目的とするドメイン固有言語の総称である。すなわちXMLSGMLの文書構造を定義することに特化した言語の総称である。スキーマ記述言語: schema description language, SDL)とも呼ばれる。

概要

スキーマは任意の言語で記述しうる。しかし汎用言語を流用する場合、その言語仕様によってスキーマの自由度が下がる場合がある。例えばC言語構造体定義を用いてスキーマを定義した場合、属性の型がC言語のデータ型に制約されてしまう。これを避けるためには既存言語から中立なスキーマ記述に特化した言語を用いればよい[1]。これがスキーマ定義言語である。

「スキーマ」とは本来データベースの構造定義であり、関係データベースの場合はテーブルの各項目のデータ型、他のテーブルとの関連性などを定義したものを指す。XML文書等では、同様にXMLで作成された各要素の互いの関連性や個々の文書全体での位置付け等の定義を指す。

本来、文書は構成要素の集合体であるが、一定の構造を持たなければ単なる要素の寄せ集めでしかなく、規則性や体裁といった構造を得て初めて意味のある有用な文書となる。XMLやSGMLは文書の各要素を作成するメタ言語であり、文書構造自体を定義する事はできない為、このままでは扱いにくい。そこで構造を定義する言語が必要となり、開発されたのがスキーマ言語である。 例えば、SGMLではDTDがスキーマ言語として使用されていた。XMLがSGMLから派生した関係からXMLでもDTDが使用されていたが、DTDは文法がXMLと全く異なっている事や、要素のデータ型を定義する事ができない事等から、新たに XML Schema や、RELAXRELAX NG が開発されている。

主なスキーマ言語

脚注

  1. ^ "allows us to talk about ... schemas in a language-agnostic way." GraphQL. Schemas and Types. 2023-01-01閲覧.

関連項目



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

辞書ショートカット

すべての辞書の索引

「XmlSchema」の関連用語

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

   

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



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

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【XML Schema】の記事を利用しております。
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのXML Schema (改訂履歴)、スキーマ言語 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS