- PR -

XMLSchemaについて質問

1
投稿者投稿内容
hana
会議室デビュー日: 2003/11/10
投稿数: 8
投稿日時: 2003-12-23 23:00
XMLSchemaについて質問です。

ex)
<TAG1>aaa</TAG1>
<TAG2>aaa</TAG2>


処理1

ex2)
<TAG1>aaa</TAG1>
<TAG2>bbb</TAG2>


処理2

上記のようにTAG1とTAG2の値を比較して同じなら処理1、
違っていたら処理2としたいのですが、そのようなことはできるのでしょうか?
(処理1や処理2にはエラーにするという意味も含んでいます)

XMLSchemaには変数のように値を保持するようなものがないようなので
どのように比較していいのかわかりません。
わかる方がいらっしゃいましたら是非教えてください。
宜しくお願い致します。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2003-12-23 23:18
データ(Infoset)の構造や値の制約条件を書けるが、
動作(アクション)は書けません。そういうものです
検証パーサーは条件の破れをアプリに報告だけします。
各種の動作はXMLSchemaを使うアプリの仕事です。
あるいは○○フレームワーク。

データの制約条件でXMLSchemaで記述できないのも
あります。

XSLT をデータの検証に使うアプローチもあります。
hana
会議室デビュー日: 2003/11/10
投稿数: 8
投稿日時: 2003-12-24 10:20
ご回答ありがとうございます。
動作(アクション)を記述できない点、了解いたしました。

質問を変えます。
上記例のTAG1とTAG2の値が同じでなければならないという制約は作ることはできますか?
もし出来るのなら方法を教えて頂けませんでしょうか。
宜しくお願い致します。

[ メッセージ編集済み 編集者: hana 編集日時 2003-12-24 10:22 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2003-12-24 14:37
型の制約を主体にしてますから
値どうしの制約(DBの項目間の関数依存性のようなもの)
はほとんどできないのでは。記述例をみたことはありません

XSLT では 形として
<xsl:template match="/">
<xsl:if test="TAG1 != TAG2">
<xsl:comment>TAG1 ≠ TAG2 です

ルールやXMLSchemaから検証のXSLTを生成するタイプは
Beyond W3C XML Schema
http://www.xml.com/lpt/a/2002/04/10/beyondwxs.html

An Introduction to Schematron
http://www.xml.com/lpt/a/2003/11/12/schematron.html

Combining RELAX NG and Schematron
http://www.xml.com/lpt/a/2004/02/11/relaxtron.html
ここでは、共起関連を検査してます。

Topologi Schematron Validator
http://www.topologi.com/products/validator/index.html

Validation Language は RelaxNG も含めて今は熱いです。
先週の XML 2003 コンファレンスのニュースは翻訳サイトに投げて
読みましょう。(直近の仕事には使えませんが)
XML 2003 session report: News from the world of DSDL
http://www.xmlhack.com/read.php?item=2120
聴衆からの別の質問は、WXSがNRLの中のサブ木を有効にするために使用
される場合、ポスト図表確認Infoset(PSVI)がどのように扱われる
かでした。クラークは答えました:「DSDL世界視界では、PSVIはありま
せん。確認の出力は純粋にエラー情報です。」

[ メッセージ編集済み 編集者: MMX 編集日時 2004-02-17 17:29 ]
hana
会議室デビュー日: 2003/11/10
投稿数: 8
投稿日時: 2003-12-24 20:57
ご回答ありがとうございます。

やはりそうですよね。
別の方法(Schema以外)を考えてみます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)