- - PR -
XMLSchemaで要素値の最大長をバイト数で制限したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-08 23:20
XML初心者の由紀恵といいます。
XMLSchemaで、string型の要素値の最大長(maxLength)を、文字数でなくバイト数で制限する方法を探しています。 下記のようなXMLSchemaファイルとXMLファイルがあった場合、<empname>の要素値の最大長を4バイトに制限して、 "Mike"(4バイト)はOKだが、"マイク"(6バイト)はNGにしたいのです。 しかし、どうやっても"Mike"(4文字)、"マイク"(3文字)とカウントしてしまうようで、どちらもOKになってしまいます。 いわゆる半角文字と全角文字が混在する文字列の最大長を制限する場面は多々あると思いますが、皆さんどのようにされているのでしょうか? ご存知の方がいましたらご教授ください。よろしくお願いします。
| ||||
|
投稿日時: 2005-06-09 08:27
正規表現を駆使するしかないかと思います。
| ||||
|
投稿日時: 2005-06-10 11:58
文字列のバイト長は、実際に使用する文字コードによって変わってしまうため、XMLスキーマ
で指定することはできないでしょう。 | ||||
|
投稿日時: 2005-06-10 13:28
アドバイスありがとうございます。
どうやら正規表現でチェックするのが懸命のようですね。 とりあえず、いわゆる全角文字を「全角漢字と全角ひらがなと全角カタカナ」、いわゆる半角文字を「半角英字と半角数字」とした場合、下記のsimpleTypeを定義すれば当初の目的は達成できることが判りました。 ただ、半角と全角が混在した要素値("マイ9"など)はチェックできません。。。 何か良いアイデアはないでしょうか。
[ メッセージ編集済み 編集者: 由紀恵 編集日時 2005-06-10 13:31 ] |
1