|
XML Schema 1章 XML Schema
1.3 schema要素XML Schemaのルート要素は、schema要素です。schema要素内のコンテンツでは、以下のものを定義します。 ![]()
例えば、8.2で示したスキーマ、PO1では、element要素で、要素宣言をしています。また、complexType要素およびsimpleType要素で型定義をしています。さらに、annotation要素がコメントになります。 schema要素の子供要素で宣言・定義されるものには、それぞれ名前があるものがあります。例えば、要素宣言で宣言されている要素には要素名が、型定義で定義されている型には、型の名前があります。そして、それらの名前は、すべて「Target Namespace」に属しています。 Target Namespaceは、schema要素の属性です。以下に例を示します。 ![]() 以上の例は、8.2で示したスキーマ、PO1のNamespaceを図に表したものです。まず、ルート要素であるschema要素のTargetNamespace属性値にURI 「http://www. example.com/PO1」が設定されています。これにより、このschema要素内の「名前」はすべて、「http://www.example.com/PO1」という名前のNamespaceに属していることになります。 注意しなければいけないのは、URI 「http://www.example.com/PO1」は、言語のスキーマを定義している、XML schemaファイルの場所を表しているわけではない、ということです。これは、「日本語」「英語」のように、XML文書が「http://www.example.com/PO1」という名前の言語でかかれていることを示しています。 上の図は、Namespaceの区分も表しています。例えば、上記図の濃い緑色の部分に含まれている4つの名前、「purcahseOrder」要素、「ZIP」型、「USAddress」型、「PurchaseOrderType」型は、schema要素の直下の子供要素で指定されている名前です。これらはGlobal Nameと呼ばれます。Global Nameは他の「言語」で記述されたXML文書より参照可能です。対して、PurchaseOrderTypeの下の四角や、USAddressの下の四角の中に区分されている名前はLocalNameと呼ばれます。Local Nameは、他の言語で記述された言語から直接参照することはできません。そのかわり、例えば、PurchaseOrderType内とUSAddress内で、別のデータ型で同じ名前の要素を定義することが可能です。XML Schemaにおける、Namespaceの取り扱いに関して、詳細なことは、後ほど説明します。 その他、schema要素の属性の意味について、以下に記します。
さらに、ひとつの言語のスキーマを複数のファイルに分割することができます。以下に例を示します。 <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com/IPO"> <include schemaLocation="http://www.example.com/schemas/address.xsd> </xsd:schema> ipo.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com/IPO"> ... </xsd:schema> address.xsd 以上の例では、スキーマを定義しているファイルが2つ存在しています。つまり、schema要素が2つ、存在します。2つのschema要素のtargetNamespace属性の値を確認してください。両方とも、同じURI「http://www.example.com/IPO」を示しています。 1.4 まとめ
|
![]()
![]()
|