XMLスキーマ1.1の主な変更点

XML Schema 1.0が導入されて以来、この標準は広く採用されています。長年にわたり、開発者からはいくつかの変更要望が寄せられており、特に、より詳細なビジネスルールを定義・検証できる機能や、柔軟なスキーマの進化を可能にする機能が求められてきました。これらの課題に対応するため、XML Schema 1.1 Recommendationには、数多くの変更点と改善が盛り込まれています。

XML Schema 1.1の最新機能で特に注目すべき点と、さらに詳しく学ぶための情報源、またはすぐに使い始めるためのリソースをご紹介します。

XMLスキーマ1.1の最新情報を学びましょう

XML Schema 1.1 の新機能および改善点について、詳細な解説が弊社の無料提供資料に掲載されています オンラインでのXMLスキーマに関するトレーニングコース, いつでもアクセスでき、ご自身のペースで学習を進めることができます。もしあなたがすでにXMLスキーマの開発に慣れており、XSD 1.1で新たに導入された機能や改善点について知りたいだけであれば、9章へ直接進んでください。このコースは、XMLスキーマ1.1について学ぶための優れた方法であり、新しい機能を活用するために、迅速に既存のスキーマを調整することができます。

この記事では、XMLSpyを使って新しい機能をどのように活用できるか、いくつかの主要なポイントを解説します。XMLSpyの2014以降のバージョンでは、XML Schema 1.1に対する完全なサポートが提供されており、XML Schema 1.1に基づいてXSDファイルやXMLインスタンスファイルを検証できるほか、グラフィカルインターフェース上で、インテリジェントなXSD 1.1編集ツールも利用できます XMLスキーマ1.1 エディタ.

主張

XML Schema 1.1におけるアサーション(co-constraintとも呼ばれます)は、複数の要素に関わるビジネスルールに基づいた検証を可能にします。これらのルールは、XPath式を使用して定義されます。例えば、新しい要素を使用して、経費が許可された金額以下であるか、日付が特定の期間内にあるかなどを検証できます。この例では、アサーションは、会議の終了時間が開始時間よりも大きいことを指定しています。この内容は、XML Schemaのデザインビューで以下のように表現されます

そして、それに対応するコードでは:

XMLスキーマ1.1ドキュメントの場合、グローバルビューの「アサーション」タブを使用すると、スキーマに定義されているアサーションを簡単に確認できます。また、新しいアサーションを追加したり、XPathのデフォルト名前空間を選択したりすることも可能です。

または、コンテンツモデルビューで要素を右クリックし、「子アサーションの追加」を選択することで、それらを定義することもできます。詳細表示ヘルパーウィンドウを通じて、XPathテストをコンテンツモデル内で直接定義できます。

XML Schema 1.1の大きな利点の一つは、ビジネスルールを定義し、検証できる能力です。そして、このグラフィカルな表示が、そのプロセスをスムーズに進めるのに役立ちます。

条件文の別の表現方法

条件付き型の代替案は、XSDをより強力にするための機能の一つであり、組み込みの柔軟性を追加します。これにより、XMLインスタンスドキュメント内の属性値に基づいて、要素に動的に型を割り当てることが可能になります。xs:alternative要素には、typetestという2つの属性があります。以下に、先ほど使用した会議のスキーマを使った例を示します。

会議の終了時間が正午より前であれば、会議の種類は「午前会議」です。正午以降であれば、「午後会議」となります。これをプログラムで定義するには、以下のようになります XMLスキーマ設計ツール, 単に「Meeting」要素を右クリックし、「子要素の追加」または「代替要素の追加」を選択します。詳細エントリヘルパーを使用してXPath式を入力し、その後、ドロップダウンメニューから、動的に要素に割り当てるタイプを選択します。

現在、XMLインスタンス内の「Meeting」要素において、終了時間が12:00:00以降の場合、自動的に「MeetingType AfternoonMeeting」が適用されます。 グラフィカルなXSDエディタを使用することで、これらの関係性を視覚的に把握し、設定することが容易になります。

スキーマ全体の属性

XML Schema 1.1では、スキーマ内のすべての複合型に自動的に適用される一連のデフォルト属性を定義できます。例えば、当社の会議スキーマでは、開始時間(startTime)と終了時間(endTime)の属性を、すべての要素に手動で追加することなく適用できるようにすると便利です。手動での追加は手間がかかり、特に要素数が多くのスキーマでは、エラーが発生する可能性もあります。XML Schema 1.1のxs:schema要素には、オプションのdefaultAttributes要素があり、これは属性グループを識別します。(もし、特定の要素にデフォルト属性を適用したくない場合は、defaultAttributesApply="false"と指定することで、その属性の適用を無効にできます。)属性グループを追加し、XML Schemaエディタのグローバルビューでデフォルト属性を定義するのは簡単です。

次に、「スキーマ設計」メニューからアクセスできる「スキーマ設定」ダイアログで、先ほど作成した属性グループを、ドロップダウンリストから「デフォルト属性」として選択します。

以下に、XML Schema 1.1によって提供される主な機能のいくつかを示します。その他にも、継承可能な属性、置換グループの機能強化、xs:errorデータ型などが含まれます。これらの機能はすべて、XML Schemaオンライン研修コースの第9章で、具体的な事例ファイルを用いて詳細に解説されています。

追加のリソースとツール:

XML Schema 1.1 Recommendation XMLSpy XML Schema 1.1 Editor and validator RaptorXML XML Schema 1.1 Validation Server Free Online XML Schema 1.1 Training