XSD どのように使用しますか?


XML ドキュメントは DTD または XML Schema を参照できます。


簡単な XML ドキュメント:

次の "note.xml" という名前の XML ドキュメントを見てください:

<?xml version="1.0"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>


DTD ファイル

次の例は "note.dtd" という名前の DTD ファイルで、上記の XML ドキュメント( "note.xml" )の要素を定義しています。

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

1 行目は、note 要素に "to, from, heading, body" という4つの子要素があることを定義しています。

2〜5 行目は、to, from, heading, body 要素の型が "#PCDATA" であることを定義しています。


XML Schema

次の例は "note.xsd" という名前の XML Schema ファイルで、上記の XML ドキュメント( "note.xml" )の要素を定義しています。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="to" type="xs:string"/>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="heading" type="xs:string"/>
      <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

note 要素は複合型です。他の子要素を含むためです。他の要素 (to, from, heading, body) は簡易型です。他の要素を含まないためです。複合型と簡易型の詳細については後の章で学びます。


DTD への参照

このファイルには DTD への参照が含まれています:

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd/note.dtd">

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>


XML Schema への参照

このファイルには XML Schema への参照が含まれています:

<?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
その他の拡張