このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

スキーマを遵守する XML ドキュメントをプログラミング的に書き込むまたは読み取るためにこのサンプルは生成されたスキーマラッパーライブラリの使用方法を説明しています。サンプルコードを使用する前に以下のスキーマの構造を理解してください。

 

このサンプル内で使用されるスキーマは書籍のライブラリを説明しています。スキーマの定義全体が下に表示されています。このサンプルと同じ結果を得るために Doc.xsd としてこのコードリスティングを保存します。このサンプル内で使用されるコードライブラリを生成するためにこのスキーマが必要になります。

 

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.nanonull.com/LibrarySample" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.nanonull.com/LibrarySample" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="Library">
    <xs:complexType>
        <xs:sequence>
          <xs:element name="Book" type="BookType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="LastUpdated" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="BookType">
    <xs:sequence>
        <xs:element name="Title" type="xs:string"/>
        <xs:element name="Author" type="xs:string" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="ID" type="xs:integer" use="required"/>
    <xs:attribute name="Format" type="BookFormatType" use="required"/>
  </xs:complexType>
  <xs:complexType name="DictionaryType">
    <xs:complexContent>
        <xs:extension base="BookType">
          <xs:sequence>
              <xs:element name="FromLang" type="xs:string"/>
              <xs:element name="ToLang" type="xs:string"/>
          </xs:sequence>
        </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="BookFormatType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Hardcover"/>
        <xs:enumeration value="Paperback"/>
        <xs:enumeration value="Audiobook"/>
        <xs:enumeration value="E-book"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

 

Library は XMLSpy のスキーマビュー内で以下のように視覚的に表示されている complexType のルート要素です:

xsd_diagram_Library

上に示される通り( xs:dateTime と定義されている) LastUpdated 属性は書籍のシーケンスを保存します。各書籍は xs:complexType で2つの属性を有しています: ( xs:integer と定義される) IDFormat。書籍の書式はハードカバー、文庫、オーディオブック、または電子書籍であることができます。スキーマ内で Format は上記の値の列挙を使用する xs:simpleType として定義されています。

 

各書籍には Title 要素 ( xs:string と定義される) と ( xs:string と定義される)1個または複数の Author 要素が存在します。

 

ライブラリには辞書である書籍が含まれている可能性があります。辞書は BookType からの拡張から派生する型 DictionaryType を有しています。すなわち、辞書は Book のすべての属性と要素と2個の追加要素を継承します: 以下に示されるように FromLang ToLang

xsd_diagram_DictionaryType

FromLangToLang 要素は辞書のソースと目的言語を保管します。

 

(スキーマファイルと同じディレクトリ内に存在することが前提で)上記のスキーマに従い有効な XML インスタンスファイルは下のリスティングのように表示されます :

 

<?xml version="1.0" encoding="utf-8"?>
<Library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.nanonull.com/LibrarySample" xsi:schemaLocation="http://www.nanonull.com/LibrarySample Library.xsd" LastUpdated="2016-02-03T17:10:08.4977404">  
  <Book ID="1" Format="E-book">
    <Title>The XMLSpy Handbook</Title>
    <Author>Altova</Author>      
  </Book>
  <Book ID="2" Format="Paperback" xmlns:n1="http://www.nanonull.com/LibrarySample" xsi:type="n1:DictionaryType">
    <Title>English-German Dictionary</Title>
    <Author>John Doe</Author>
    <FromLang>English</FromLang>
    <ToLang>German</ToLang>
  </Book>
</Library>

 

次のトピックはこのようなファイルをプログラミングの観点から読み取る、またはこのようなファイルをプログラミング的に書き込む方法について説明しています。XML スキーマまたは DTD からコードを生成する内で説明されているステップを使用して上記のスキーマからスキーマラッパーコードの生成を開始します。

(C) 2020 Altova GmbH