XMLマスターへの道
〜「XMLマスター:ベーシック」試験対策〜

最終回 XML Schema―型の再利用と名前空間

内藤一彦
NRIラーニングネットワーク株式会社
2004/4/2

 前回「第14回 XML Schemaを利用したスキーマ定義」では、要素や属性の宣言、子要素を持つ要素構造(complexType:複合型)の宣言を中心に、XML Schemaでの基本的な定義方法を説明しました。最終回となる今回は、型の再利用(制限や拡張)ができる機能を使って、ユーザー定義単純型(組み込みデータ型に最小値や最大値などの制限を設ける)の定義方法と、XML Schema文書での名前空間の利用、またその場合のXML文書とXML Schema文書の関連付けの方法を解説します。

 前回、予習問題として下記の問題を出題しておきました。この問題を解くための解説をした後、解答を示します。

今回の問題

(Q1) 次のユーザー定義単純型で宣言されている構造に合致する、XML文書中のid要素の記述として正しいのはどれでしょう。

<xs:simpleType name="restid">
  <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z]{2}-\d{3}" />
  </xs:restriction>
</xs:simpleType>

<xs:element name="id" type="restid" />

 (a) <id>AB</id>
 (b) <id>1234</id>
 (c) <id>AX456</id>
 (d) <id>AX-456</id>

(Q2) 次のように、スキーマ定義として名前空間に関連付けしたXML Schema文書を参照しているXML文書があります。このXML文書が妥当となるXML Schema文書をすべて選択してください。

<emp:EMPLIST
 xmlns:emp="http://www.abc.com/EMP-Schema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.abc.com/EMP-Schema empschema.xsd">
  <emp:EMPLOYEE emp:id="A001">
    <emp:NAME>Taro Yamada</emp:NAME>
  </emp:EMPLOYEE>
</emp:EMPLIST>

(a)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="EMPLIST" type="EMPLIST_type" />
<xs:element name="EMPLOYEE" type="EMPLOYEE_type" />
<xs:element name="NAME" type="xs:string" />
<xs:attribute name="id" type="xs:ID" />

<xs:complexType name="EMPLIST_type">
  <xs:sequence>
    <xs:element ref="EMPLOYEE" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence>
    <xs:element ref="NAME" />
  </xs:sequence>
  <xs:attribute ref="id" use="required" />
</xs:complexType>

</xs:schema>

(b)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.abc.com/EMP-Schema"
    xmlns:ns1="http://www.abc.com/EMP-Schema">

<xs:element name="EMPLIST" type="ns1:EMPLIST_type" />
<xs:element name="EMPLOYEE" type="ns1:EMPLOYEE_type" />
<xs:element name="NAME" type="xs:string" />
<xs:attribute name="id" type="xs:ID" />

<xs:complexType name="EMPLIST_type">
  <xs:sequence>
    <xs:element ref="ns1:EMPLOYEE" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence>
    <xs:element ref="ns1:NAME" />
  </xs:sequence>
  <xs:attribute ref="ns1:id" use="required" />
</xs:complexType>

</xs:schema>

(c)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.abc.com/EMP-Schema"
    elementFormDefault="qualified">

<xs:element name="EMPLIST" type="EMPLIST_type" />
<xs:element name="EMPLOYEE" type="EMPLOYEE_type" />
<xs:element name="NAME" type="xs:string" />

<xs:complexType name="EMPLIST_type">
  <xs:sequence>
    <xs:element ref="EMPLOYEE" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence>
    <xs:element ref="NAME" />
  </xs:sequence>
  <xs:attribute name="id" type="xs:ID" use="required"
    form="qualified"/>
</xs:complexType>

</xs:schema>

(d)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.abc.com/EMP-Schema"
    xmlns:ns1="http://www.abc.com/EMP-Schema"
    elementFormDefault="qualified">

<xs:element name="EMPLIST" type="ns1:EMPLIST_type" />
<xs:element name="EMPLOYEE" type="ns1:EMPLOYEE_type" />
<xs:element name="NAME" type="xs:string" />


<xs:complexType name="EMPLIST_type">
  <xs:sequence>
    <xs:element ref="ns1:EMPLOYEE" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence>
    <xs:element ref="ns1:NAME" />
  </xs:sequence>
  <xs:attribute name="id" type="xs:ID" use="required"
    form="qualified" />
</xs:complexType>

</xs:schema>

 今回は、この問題に解答するうえで必要となる下記の内容について解説します。

  • ユーザー定義単純型の定義
  • XML Schema文書での名前空間の利用
    • XML Schema文書とXML文書の記述方法
    • グローバル宣言とローカル宣言


ユーザー定義単純型の定義

 XML Schemaでは型を再利用する機能が用意されており、それを利用するとxs:intやxs:stringなど基本となるデータ型に最小値や最大値、文字数などの制限を設けて、新しい型として使用できます(「第14回 XML Schemaを利用したスキーマ定義」の「XML Schemaの概要 データ型体系」を参照)。指定された制限にマッチしない文書は妥当ではない文書と見なされます。

 ユーザー定義単純型はsimpleTypeを使用して宣言します。次のような要素を考えてみましょう。

<EMPLOYEES>
     <EMPLOYEE   id="A001">
           <Name>Taro Yamada</Name>
           <Salary>400000</Salary>
     </EMPLOYEE>
</EMPLOYEES>
リスト1 従業員XML

 Salary要素は従業員の給与を表し、0より多く100万円以下でなければなりません。このとき、Salary要素の型は次のような形で宣言することになります。

 リスト2 Salary要素用のユーザー定義単純型


型の名前
 name属性でこの型に名前を付けます。この名前は、SALARY要素の宣言で使用されます。

ベースとなる型
 制限をかけるベースとなる型を指定します。

制限内容
 xs:restriction要素の子要素として、制限内容を定義します。制限は複数の種類を組み合わせて使えます。制限の種類としては、次のものがあります(ベースとなる型によって使用できる種類が異なる)。

制限の種類 説明
length 文字数
minLength 最小文字数
maxLength 最大文字数
pattern 文字パターン
enumeration 候補値
whiteSpace 空白文字の正規化
minInclusive 最小値(指定した値を含む)
maxInclusive 最大値(指定した値を含む)
minExclusive 最小値(指定した値を含まない)
maxExclusive 最大値(指定した値を含まない)
totalDigits 最大けた数
fractionDigits 小数点以下の最大けた数
表1 子要素として指定できる制限内容


patternの使用例

<xs:simpleType  name="ItemCode_type">
   <xs:restriction  base="xs:string">
      <xs:pattern  value="\d{3}-[A-Z]{2}" />
   </xs:restriction>
</xs:simpleType>

パターンで使用する記号

 

・ \dは任意の数字を表す
・ [A-Z]は範囲を表す
・ {n}は文字が繰り返すことを表す

 従って、次のようなパターンの文字列がこれにマッチします。


enumerationの使用例

<xs:simpleType  name="DeptCode_type">
   <xs:restriction  base="xs:string">
      <xs:enumeration  value="A01" />
      <xs:enumeration  value="A02" />
      <xs:enumeration  value="B01" />
      <xs:enumeration  value="B02" />
   </xs:restriction>
</xs:simpleType>

 xs:enumerationで指定された値がそれぞれ候補値となります。従って、この例では「A01」「A02」「B01」「B02」のいずれかの値をとらなければなりません。

 では、次のようなXML文書を検証してみましょう。Salaryの値が10000000となっており、maxInclusiveの制限に違反しています。

<?xml version="1.0" encoding="Shift_JIS" ?>
<EMPLOYEES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="emp.xsd">
  <EMPLOYEE  empid="A001">
    <Name>Kazuhiko Naito</Name>
    <Salary>10000000</Salary>
  </EMPLOYEE>
</EMPLOYEES>
リスト3 スキーマに違反したXML文書(validerror.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence>
    <xs:element ref="EMPLOYEE"
                minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence >
    <xs:element ref="Name" />
    <xs:element ref="Salary" />
  </xs:sequence>
  <xs:attribute ref="empid" use="required"/>
</xs:complexType>

<xs:simpleType   name="Salary_type">
   <xs:restriction  base="xs:integer">
     <xs:minExclusive  value="0"/>
     <xs:maxInclusive  value="1000000"/>
   </xs:restriction>

</xs:simpleType>

<xs:element name="EMPLOYEES" type="EMPLOYEES_type" />
<xs:element name="EMPLOYEE" type="EMPLOYEE_type" />
<xs:element name="Name" type="xs:string"/>
<xs:element name="Salary" type="Salary_type"/>
<xs:attribute name="empid" type="xs:ID" />

</xs:schema>
リスト4 従業員XMLのスキーマ(emp.xsd

 前回も使用したスキーマ検証ツールで検証を行うと、図1のようにSalaryでエラーが発生したことが分かります。

図1 リスト3の検証結果(エラー発生)(クリックで拡大します)

XML Schema文書での名前空間の利用

XML Schema文書とXML文書の記述方法

 リスト4(emp.xsd)で紹介したXML Schema文書は名前空間を利用しないものでした。従って、このXML Schema文書を利用するXML文書(リスト5)でも、XML Schema文書で宣言されているそれぞれの要素や属性は名前空間には所属しないことになります。

<?xml version="1.0" encoding="Shift_JIS" ?>
<EMPLOYEES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="emp.xsd">
  <EMPLOYEE  empid="A001">
    <Name>Kazuhiko Naito</Name>
    <Salary>400000</Salary>
  </EMPLOYEE>
</EMPLOYEES>
リスト5 名前空間を利用しない従業員XML(emp.xml

 これに対して、次のXML Schema文書(リスト6)では、宣言されている要素や属性などは、名前空間に所属するようになります。

<?xml version="1.0" encoding="Shift_JIS"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://www.abc.com/EMPLOYEE"      ……(1)
     xmlns:tns="http://www.abc.com/EMPLOYEE">           ……(2)

<xs:complexType name="EMPLOYEES_type">
   <xs:sequence>
       <xs:element ref="tns:EMPLOYEE"
                   minOccurs="0" maxOccurs="unbounded"/>
 …(3)
   </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
   <xs:sequence>
       <xs:element ref="tns:Name"/>
       <xs:element ref="tns:Salary"/>
   </xs:sequence>
   <xs:attribute ref="tns:empid" use="required"/>
</xs:complexType>

<xs:simpleType   name="Salary_type">
   <xs:restriction  base="xs:integer">
    <xs:minExclusive  value="0"/>
    <xs:maxInclusive  value="1000000"/>
   </xs:restriction>
</xs:simpleType>

<xs:element name="EMPLOYEES" type="tns:EMPLOYEES_type"/> …(4)
<xs:element name="EMPLOYEE" type="tns:EMPLOYEE_type"/>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Salary" type="tns:Salary_type"/>
<xs:attribute name="empid" type="xs:ID"/>

</xs:schema>
リスト6 名前空間を利用しているXML Schema文書(empschema.xsd


 XML Schema文書で名前空間を利用しているとは、定義した要素・属性や複合型・ユーザー定義単純型が、その名前空間に属することです。XML文書でこれらの要素や属性を使用する場合には、その名前空間を使用しなければなりません。このXML Schema文書に合致するXML文書は次のような形となります。

<e:EMPLOYEES xmlns:e="http://www.abc.com/EMPLOYEE"   ……(5)
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.abc.com/EMPLOYEE  empschema.xsd">
……(6)
  <e:EMPLOYEE  e:empid="A001">
    <e:Name>Kazuhiko Naito</e:Name>
    <e:Salary>400000</e:Salary>
  </e:EMPLOYEE>
</e:EMPLOYEES>
リスト7 名前空間を記述した従業員XML(empschema.xml

 EMPLOYEESやそのほかの要素やempid属性が、「http://www.abc.com/EMPLOYEE」という名前空間に所属しています。この名前空間こそ、XML Schema文書で宣言した名前空間となります。

XML Schema文書の記述形式

 それでは、XML Schema文書での記述を解説していきます。

(1)targetNamespace="http://www.abc.com/EMPLOYEE"
 targetNamespace属性を使用して名前空間識別子(名前空間の名前)を付けます。宣言した要素や属性、複合型・単純型が所属することになります。

(2)xmlns:tns="http://www.abc.com/EMPLOYEE"
(3)<xs:element ref="tns:EMPLOYEE" …… />
(4)<xs:element name="EMPLOYEES"
                    type="tns:EMPLOYEES_type" />

 宣言した要素や属性、複合型・単純型は名前空間に所属します。名前空間に所属するこれらを参照する場合、名前空間の宣言を行い、プレフィックスを指定する必要があります(「第13回 名前空間を理解しDOMの概要をつかむ」の「名前空間(宣言と利用)」を参照)。

 (2)はそのための名前空間の宣言ですが結果的には、targetNamespaceで付けた名前の名前空間に対してプレフィックスを宣言する形となります。(3)と(4)はプレフィックスを付けて要素や複合型を参照しています。もし、(4)でプレフィックスを付けずに下記のように記述した場合、EMPLOYEE_type複合型は参照できません。

<xs:element name="EMPLOYEES" type="EMPLOYEES_type"/> …… エラー

 前述の検証ツールでチェックしてみると、名前空間に所属していないEMPLOYEES_typeを参照できないためにエラーが発生していることが分かります。

図2 リスト7の検証結果(エラー発生)(クリックで拡大します)


XML文書の記述形式

 続いてXML文書での記述を解説していきます。

(5)xmlns:e="http://www.abc.com/EMPLOYEE"
 XML Schema文書で宣言した名前空間を利用するために記述します。XML Schema文書のtargetNamespaceで付けた名前と一致させます。

(6)xsi:schemaLocation="http://www.abc.com/EMPLOYEE empschema.xsd"
 名前空間とXML Schemaファイルを関連付けています。これにより、XML Schemaファイルが参照できるようになります。

 後は、要素や属性に(5)で宣言したプレフィックスを付記すればOKです。

グローバル宣言とローカル宣言

 XML Schema文書における要素や属性などの宣言は、グローバル宣言として扱われるものとローカル宣言として扱われるものがあります。

グローバル宣言
  ・XML Schema文書内のいずれからも参照可能
  ・名前空間に所属する

ローカル宣言
  ・記述されている範囲内でのみ参照可能
  ・名前空間に所属しない

 グローバル宣言として扱われるのは、ルート要素(xs:schema)直下の子要素として宣言されている要素や属性や型の宣言です。いままで使用してきた要素の定義(<xs:element name="XXX" …… />)はすべてグローバル宣言として扱われてきたことになります。

 ローカル宣言となるのは、ルート要素(xs:schema)直下の子要素ではなく、ある要素の子要素として宣言したものです。

 次の2つのEMPLOYEE要素の宣言を見比べてみましょう。

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence>
    <xs:element ref="tns:EMPLOYEE"
                minOccurs="0" maxOccurs="unbounded"/>

  </xs:sequence>
</xs:complexType>
<xs:element name="EMPLOYEE" type="EMPLOYEE_type"/>
グローバル宣言

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence>
    <xs:element name="EMPLOYEE"  type="tns:EMPLOYEE_type"
                minOccurs="0" maxOccurs="unbounded"/>

  </xs:sequence>
</xs:complexType>
ローカル宣言

 xs:complexType要素の中で<xs:element name="EMPLOYEE" …… />とEMPLOYEE要素を宣言しています。これは、ローカル宣言として扱われることになりますので、ほかの場所から<xs:element ref="EMPLOYEE">のように参照することはできません。そして、ローカル宣言はtargetNamespaceの名前空間に所属しなくなります。その結果、それに合致するXML文書は次のような形式になってしまいます。

<e:EMPLOYEES xmlns:e="http://www.abc.com/EMPLOYEE"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.abc.com/EMPLOYEE   empschema2.xsd">
  <EMPLOYEE  e:empid="A001">
    <e:Name>Kazuhiko Naito</e:Name>
    <e:Salary>400000</e:Salary>
  </EMPLOYEE>
</e:EMPLOYEES>
リスト8 ローカル宣言に対応させたXML文書(empschema2.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://www.abc.com/EMPLOYEE"
     xmlns:tns="http://www.abc.com/EMPLOYEE">

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence >
    <xs:element  name="EMPLOYEE" type="tns:EMPLOYEE_type"
                 minOccurs="0" maxOccurs="unbounded"/>

  </xs:sequence>
</xs:complexType>

<xs:complexType name="EMPLOYEE_type">
  <xs:sequence >
    <xs:element ref="tns:Name"/>
    <xs:element ref="tns:Salary"/>
  </xs:sequence>
  <xs:attribute ref="tns:empid" use="required"/>
</xs:complexType>

<xs:simpleType   name="Salary_type">
  <xs:restriction  base="xs:integer">
    <xs:minExclusive  value="0"/>
    <xs:maxInclusive  value="1000000"/>
  </xs:restriction>
</xs:simpleType>

<xs:element name="EMPLOYEES" type="tns:EMPLOYEES_type"/>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Salary" type="tns:Salary_type"/>
<xs:attribute name="empid" type="xs:ID"/>

</xs:schema>
リスト9 ローカル宣言を含んだXML Schema文書(empschema2.xsd

 このXML Schema文書でのグローバル・ローカル宣言の扱いは次のようになります。

ローカル宣言
  EMPLOYEE要素

グローバル宣言
  EMPLOYEES要素、Name要素、Salary要素、empid属性、
  EMPLOYEES_type複合型、EMPLOYEE_type複合型、
  Salary_type単純型

 従って、EMPLOYEE要素のみこの名前空間には所属せず、ほかの要素・属性・型宣言はすべて「http://www.abc.com/EMPLOYEE」の名前空間に所属します。

ローカル宣言をグローバル扱いにする

 前述のEMPLOYEE要素のようにxs:schema直下の子要素ではなくxs:complexType要素内で、要素宣言を行うとローカルとして扱われてしまいますが、次の記述をすることによりグローバル扱いにできます。

  (1)当該宣言に form="qualified"を記述する
  (2)xs:schemaでelementFormDefault="qualified"を記述する

(1)form="qualified"を記述する

 本来ローカル宣言となってしまう場所に記述されているものでも、form="qualified"を記述すると、グローバル扱いとなり名前空間に所属するようになります。前述のEMPLOYEE要素をグローバル扱いにするのであれば、次のような記述をします。

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence >
    <xs:element name="EMPLOYEE" type="tns:EMPLOYEE_type"
                minOccurs="0" maxOccurs="unbounded"
                form="qualified"/>

  </xs:sequence>
</xs:complexType>

 逆に、グローバル宣言をローカル扱いにしたいのであれば、form="unqualified"を記述します。

(2)elementFormDefault="qualified"を記述する

 これは、各宣言に(1)のform="qualified"のデフォルト値を設定する方法です。xs:schemaでelementFormDefault="qualified"を記述することにより、(1)の記述は必要なくなります。次の記述も、同様の構造を定義していることになります。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://www.abc.com/EMPLOYEE"
     xmlns:tns="http://www.abc.com/EMPLOYEE"
     elementFormDefault="qualified">

<xs:complexType name="EMPLOYEES_type">
  <xs:sequence >
    <xs:element name="EMPLOYEE"  type="tns:EMPLOYEE_type"
                minOccurs="0" maxOccurs="unbounded"/>

  </xs:sequence>
</xs:complexType>

 以下省略

 XML Schema文書を自動的に生成するようなツールでは、(2)のパターンで出力するものも多いようです。


今回の問題の解答

 それでは、予習問題の解答です。

(Q1) 次のユーザー定義単純型で宣言されている構造に合致する、XML文書中のid要素の記述として正しいのはどれでしょう。

<xs:simpleType name="restid">
  <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z]{2}-\d{3}" />
  </xs:restriction>
</xs:simpleType>

<xs:element name="id" type="restid" />

 答えは、(d)です。

 string型のデータに文字パターンの制限をかけています。ポイントは次のとおりです。

  • [ ]:範囲
  • { }:繰り返して出現
  • \d:数字

 従って、A〜Zの間の文字が2つ続き、その後に−(ハイフン)、最後に数字が3つ続く文字パターンが必要です。この問題に関して参考になる解説は、「ユーザー定義単純型の定義」です。

(Q2) 次のように、スキーマ定義として名前空間に関連付けしたXML Schema文書を参照しているXML文書があります。このXML文書が妥当となるXML Schema文書をすべて選択してください。

<emp:EMPLIST
 xmlns:emp="http://www.abc.com/EMP-Schema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.abc.com/EMP-Schema empschema.xsd">
  <emp:EMPLOYEE emp:id="A001">
    <emp:NAME>Taro Yamada</emp:NAME>
  </emp:EMPLOYEE>
</emp:EMPLIST>

 答えは、(b)と(d)です。

 このXML文書で使用されている要素・属性はすべて「http://www.abc.com/EMP-Schema」の名前空間に所属しています。すなわち、XML Schema文書を考えた場合、グローバル扱いにしなければならないということです。

 (a)は名前空間がまったく考慮されていません。(c)はelementFormDefault="qualified"の記述があるのですが、複合型や要素を参照するときに名前空間が考慮されていません。

 (b)は、要素や属性、複合型の宣言はすべてxs:schema直下の子要素として記述されていますので、グローバルであり名前空間に所属します。それらを参照する場合も名前空間のプレフィックスを使用していますので問題ありません。

 (d)では、elementFormDefault="qualified"を記述していますので、要素の宣言はグローバルであり、名前空間に所属します。しかし、この記述は属性に対しては無効です。従って、id属性の宣言ではform="qualified"が指定されています。また、属性用にはelementFormDefaultと同じ目的としてのattributeFormDefaultがあります。属性の宣言の部分でform="qualified"を記述する代わりに、xs:schemaでattributeFormDefault="qualified"を記述してもOKです。

 この問題に関して参考になる解説は、「XML Schema文書での名前空間の利用グローバル宣言とローカル宣言」です。

今回で『XMLマスターへの道 〜「XMLマスター:ベーシック」試験対策〜』の連載は完結です。長い間ご愛読いただき、ありがとうございました。(編集局)


まとめノート:XML Schemaを利用したスキーマ定義

○今回の試験対策のポイント

  • ユーザー定義単純型の定義
  • XML Schema文書での名前空間の利用
    • XML Schema文書とXML文書の記述方法
    • グローバル宣言とローカル宣言

○今回の学習内容で出題範囲となる仕様

○今回の学習内容で参考になる@ITの記事

○今回の学習内容で参考になるXML用語集 @IT XML用語事典より)

 

Index
連載:XMLマスターへの道
  (1)XMLマスター:ベーシック試験のレベルは?
  (2)XMLの概要と起源、関連規格
  (3)XML文書の要素、エンコーディング、宣言
  (4)すべてのXM文書は整形式である
  (5)valid XMLとDTDの関係
  (6)模擬問題:XMLの基本
  (7)模擬問題:W3C XML Schema
  (8)模擬問題:DOM
  (9)DTDの実体宣言と記法宣言
  (10)XSLTの基本構造を理解する
  (11)XSLTで必須の制御命令を覚える
  (12)XPathによるノードの指定法を理解する
  (13)名前空間を理解しDOMの概要をつかむ
  (14)XML Schemaを利用したスキーマ定義
(最終回)XML Schema―型の再利用と名前空間



連載:XMLマスターへの道


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間