InfoQ

News

XSD、Schematronそして実環境

作者 Thomas Bandholtz, 翻訳者 編集部 投稿日 2008年4月4日 午前6時32分

コミュニティ
SOA
トピック
タグ
XML

XML、XSL、SVGおよびXQueryなどについて数々の著書(source)をあらわしているKurt Cagle氏が、Schema Modeling Language (SML)(source)でXSDとSchematronvenの結合によるXMLおよびModeling(source)についてブログに書いた。実演として、SMLスキーマの例を提示した。それは現在の日付の処理時間(指定時間内では契約は有効)とサポートされている適用の動的リスト(外部文書にある)に言及している。疑いようもなく、SMLはスキーマの一部として、スキーマエディターが動的数値の制約を表現することを可能にする。そうでなければ、アプリケーションロジックに任され たままであっただろう。しかしながら、そもそもXSDはモデリング言語とみなされるべきなのか?

むしろ、XSDの目的は「XML文書のクラスの定義と記述」(source)であり、XMLでの「M」はモデリング対象外のマークアップを意味することを忘れてならない。 節度あるこのアプローチは、成功の秘訣の1つなのかもしれない。読者が同意を示さないものはすべて排除し、合意のみを目的とした安定したソリューションを提供する。これは、XMLおよびXSDの最初の10年間におけるグローバルインターオペラビリティーに向けた大躍進へと繋がった。現在ではほとんど当たり前のこととみなされている。

XSDがSchematron機能拡張を伴ってくると、こんにちのXSDを意識したインストール基盤はどのような振る舞いをするのか?おそらくは、単にア ドオンを無視するのだろう。というのは、巧妙にもよく知られたアノテーションまたはアプリケーション情報エレメントに表示されるからであり、それによりマ イグレーションの中断がない。

SMLについて語るのは誰か?およそ1年前にSML 1.0が(BEA、CA、Cisco、EMC、HP、IBM、Intel、MicrosoftおおびSunのような)大手共同事業体によりW3C(source)に提供さ れ、大きな変更もなく現在のWorking Draft 1.1になった。比較的安定しているようである。

来るべきXSD 1.1のアップグレードとの調整はどのようにするのか?SML Working GroupはW3C XML Activityの他にXML Schema Working Groupによってホストされ、XSD 1.1 Draft 2007-08(source)について言及さえせずに、SMLはXML Schema Part 1: Structures Second Edition (2004)を参照する。XSD 1.1は「XML言語のバージョン管理」および「 共起制約のサポートに対応している。その制約は属性やエレメント、または値の存在を許容可能にし、その他の属性やエレメントの値や存在に依存する」。

最後に、競合しているアプローチはあるのか?Web Service Modeling Language WSML(source)(少なくとも名称では類似)が最終的にW3C Recommendation: Semantic Annotations for WSDL and XML Schema SAWSDL in 2007(source)に導いた4つのサブミッションの1つに属している。SAWSDLは、Semantic Service Interoperabilityをサポートするように設計されているが、一般的には、Semantic Web(source)の強力なオントロジーベースのモデリング機能に対してXSDおよびWSDLを開放している。

この3つのアプローチをどのように結合することができるのか?Kurt氏自身が、 Where's XML Going(ブログ・英語)でこれまでの書き込みにおける傾向の中でも、セマンティクスを強調した。

IT大学の卒業生として、IT業界に関わっているならば、セマンティクスシステムと知識管理を研究しているだろう。なぜならばそれらが参加する価値のある熱い分野であるからだ。
これを若い世代へ伝えていくだけなのはなぜか?SML/Schematronアプローチは、XSD制約の表現に対する妥当な機能拡張である一方、「 スキーマのコーナーに羽ぼうき」を追加するだけでは、Service Modeling Languageを取り組みがいのあるラベルに値するものにすることはできない。確かに、スキーマはモデルの一種であるが、モデルは単にスキーマにとどま らない(ブラッシュされたコーナー付き)。モデリング言語を可能にしているのは何か?アプリケーションデベロッパの観点から、再びKurt氏が重要要件を 提供している。
コードの1行を書く前に、そのコードでモデル化しようとしている具体的な実環境について、比較的細部まで理解しておく必要がある。
完全なモデルは構造や制約についてだけではなく、実環境に関連している側面を記述する概念と関連付けする必要がある。そして、これこそが確実にセマンティクスがもたらそうとしているものである。

原文はこちらです:http://www.infoq.com/news/2008/04/xsd-schematron-real-world

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

ファイルシステムでHello World

この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。

Guice(ジュース)を早飲みしすぎていませんか?

あなたのチームが、既存アプリケーションを「シングルトンの入れ子」設計から依存性注入(DI)へ移行しようとしているなら、この論文に心引かれるでしょうが、DIへの移行は難しいことが分かっています。論文にはGoogleのJava DIコンテナ(Guice)の名を入れていますが、Javaや.NET、Python、Rubyなどにも当てはまります。

チームがキュービクルと引き換えにコミュニケーションスキルを得る手助けをせよ

アジャイルの「自己組織化チーム」のパラダイムでは、チームのメンバに新しいスキルが要求されます。この記事では、発展しつつあるチームの自己組織化を壊さずに、新たなスキルを伝えるためのいくつかの戦略を提案します。そして、新しいスキルを身につけるのに役立つ資料のありかを提示しています。

F#の土台を越えて - 非同期ワークフロー

今回の記事では、非同期ワークフローと呼ばれるワークフロー機能の面白い使用法を考察しますが、非同期ワークフローは.NETの非同期プログラミングモデルを単純化することを目的としています。

言語としてのアーキテクチャ: ストーリー

アーキテクチャは一般に、Word文書に主として見られるような極めて実体のない、ソフトウェアシステムの概念的な側面であるか、または完全に技術によって駆動されるものかのいずれかです。そのどちらも間違っています。では、どう対処すればよいでしょうか? この記事ではアイデアを説明します、そしてアプローチのキーポイントを要約します。

メタプログラミングを使ってRubyにプロパティを追加する

Werner Schuster氏が、簡単な例を示しながら、Javaのようなプロパティをメタプログラミングを使ってRubyに追加する方法を示します。

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。