- PR -

XML Schemaで属性に条件をつけるには

1
投稿者投稿内容
koji
常連さん
会議室デビュー日: 2005/07/14
投稿数: 28
投稿日時: 2008-10-24 15:13
こんにちは。XML Schema定義について質問です。

<Test name="a1" />
<Test name="a1" val1="1" val2="2" >
<Val />
<Val />
</Test>
のような内容のXML文書(一部分)があったとします。

Testタグの属性は、
・nameだけ
・name,val1,val2全て
のどちらかのパターンになります。
で、val1,val2は、
・val1 < val2
・両方ともtype="xs:unsignedByte"
の条件を満たさないといけません。
また、val1,val2が指定されている場合のTestタグ内の要素数(タグの数)は
・val1<= 要素数 <=val2
の範囲です。

このような場合、Schema定義はどう書けばよいか教えてください。


[ メッセージ編集済み 編集者: koji 編集日時 2008-10-28 10:27 ]
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2008-10-24 21:14
 XML Schemaはあまり詳しくありませんが、
XML Schema1.0ではできないだろうと思っています。

http://www.w3.org/TR/xmlschema11-1/#cAssertions
をちょっと見た感じではXML Schema1.1だとできるのではないかと思います。
 XML Schema1.0でやるなら、
できるところまでSchemaを作ってあとはプログラムでチェックするか、
あるいは、XSLTで変換したものをSchemaチェックするか
になると思います。

koji
常連さん
会議室デビュー日: 2005/07/14
投稿数: 28
投稿日時: 2008-10-27 09:54
ぱっと見ではわかりませんでしたので、熟読してみたいと思います。
英語だからきついですが。。。

>・val1 < val2
の部分は出来そうですね。
1.0でも可能みたいです。

ありがとうございました。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2008-10-27 10:11
検索語では
XML validate
あたりです。
XSLTを使う schematron は年季 入っています。(生き残ってる)
XML Schema に検証用の スクリプトを埋め込んで拡張するのとかもアリ
koji
常連さん
会議室デビュー日: 2005/07/14
投稿数: 28
投稿日時: 2008-10-27 18:33
C#からXML文書をXML Schemaで検証するのですが、schematron.NET
というのがありますね。

・Schematron を使用して XML ドキュメント検証を向上する
http://msdn.microsoft.com/ja-jp/library/aa468554.aspx

XML Schema1.1で実現出来ないようでしたら、ライブラリの使用も
考えてみたいと思います。

> 検証用の スクリプトを埋め込んで
そんな事が出来るのですね。
ちょっと調べてみたのですが、やり方はわかりませんでした。。。

1冊、体系的に学べるXML Schemaの本がほしいですねぇ。

情報ありがとうございました!


[ メッセージ編集済み 編集者: koji 編集日時 2008-10-28 10:28 ]
1

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