web-dev-qa-db-ja.com

XSDファイルの目的は何ですか?

C#(.NET)からXMLファイルを照会できるのに、なぜXSDファイルが必要なのですか?特定のXMLファイルのメタデータファイルであることは知っています。 XSDで関係を指定できますが、そのときの機能は何ですか?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

提供されたOrderに従ってCustomerID要素からデータを取得したい。

Also:XSDで関係を提供する目的は何ですか?

86
Red Swan

XSD ファイルは、XMLファイルが特定の形式に準拠していることを検証するために使用されます。

その点で、それらはそれらの前に存在していた DTD sに似ています。

XSDとDTDの主な違いは、XSDがXMLで記述されており、読みやすく理解しやすいと考えられていることです。

102
Oded

XMLスキーマ(XSDファイル)がなければ、XMLファイルは比較的自由な要素と属性のセットです。 XSDファイルは、許可される要素と属性とその順序を定義します。

一般に、XMLはメタ言語です。 XSDファイルは、そのメタ言語内の特定の言語を定義します。たとえば、XSDファイルにXHTML 1.0の定義が含まれている場合、XMLファイルは他の形式ではなくXHTML 1.0に適合する必要があります。

44
Oleg

質問でC#に言及しているので、XSDをC#インターフェースと同様の役割を果たしていると考えると役立つ場合があります。

インターフェイスがクラスが実装するものを定義するのと同様の方法で、XMLが「見える」ものを定義します。

16
Garry

XSDは、XMLドキュメントの語彙と構造を制限します。

  • XSDなしでは、XMLドキュメントは整形式W3C XML勧告 で指定されています。
  • XSDを使用する場合、XML文書は、考慮されるためにその要素と属性の名前と値に課せられた追加の制約に従う必要があります有効W3C XML Schema Recommendation に従ってXSDに対して。

XMLはすべて合意に関するものであり、XSDはXML自体の基本的な定義を超えて合意を構築および伝達する手段を提供します。

14
kjhughes

また、質問は次のとおりです。xsdで関係を提供する目的は何ですか。

外部パーティのツールなどのためにXMLを生成したいとします-ツールで正しく使用するためにどの構造に従うことが許可されているかをどのように確認しますか?スキーマに書き込みます。同様に、他の人にツールを使用してもらいたい場合は、その人が従うためのスキーマを作成します。また、独自のXMLの検証にも役立つ場合があります。

11
Robert

XSD(XML Schema Definition)を理解する前に説明させてください。

スキーマとは何ですか?

例えば; emailID:peter#gmail

@ 、. com、.net、または.orgがないため、上記のemailIDが無効であることを識別できます。

[email protected]のようなメールスキーマを知っています。

結論:スキーマはデータを検証せず、構造の検証を行います。

XSDは、実際にはXMLスキーマの実装の1つです。私たちが持っている他の relaxng

XSDを使用してXMLデータを検証します。

7
Premraj

XSDは、XMLドキュメントの作成方法を指定する正式な契約です。多くの場合、XMLドキュメントの検証、またはコードの生成に使用されます。

6
troelskn

XSDファイルはXMLスキーマ定義であり、指定されたXMLドキュメントが期待どおりのものであることを確認する標準的な方法を提供するために使用されます。

5
a'r

.xsdファイルはXMLスキーマと呼ばれます。 XMLスキーマを介して、特定のXMLの特定の構造(要素の順序、回数、属性、ネスト方法など)が必要になる場合があります。XML入力のスキーマがある場合は、検証できますスキーマバリデータを呼び出す数行で、必要なデータが含まれているだけで、それ以外は何もないこと。

5
user395760

Xsdファイルはxmlファイルのスキーマです-発生する可能性のある要素とその制限(量、順序、境界、関係など)を定義します

4
mort