|
備忘録:
仕事でDTDばっかり使っていたが、DTDでは文書の詳細な部分の妥当性の検証ができない部分もあるので、XML Schemaを使用することにした。 しかし、要素内容の必須チェック の仕方ではまってしまった。intのタイプなら可能だが、stringタイプではエラーにならない。 つまり、XML SchemaでもStringタイプの要素はあってもなくても妥当性の検証はパスしてしまう。 で、調べまくり、ようやく解決策にたどりついた。 空要素をエラーにするには、以下のようにしなければいけない。 --- XML Schemaでは、要素内容の必須チェックを行うことはできませんが(要素記述の有無は検証できますが、文字列型のデータが空文字列でもエラーとはなりません)、<xsd:minLength>要素を1に指定することで、疑似的な必須チェックを実現できます。 --- つまり、以下のようにTypeを定義してやらなければならない。 <xs:simpleType name="MyStringType"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> 意外と、簡単にはインターネットでは調べられなかった。 あまりにも常識過ぎるのか、それとも、XML Schemaなんて誰も使用しないのか? ^^; |

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- ソフトウェア






勉強になりました.試してみましたけど、以下でもできますよね.邪道かな?
<xs:restriction base="xs:string">
<xs:pattern value=".+"/>
</xs:restriction>
2010/12/11(土) 午後 8:45 [ tna*it* ]
こんにちは、お〜なるほど。今度試してみます。:-)
2010/12/14(火) 午後 8:17 [ Hide3 ]