- PR -

XMLSchemaの正規表現の質問

1
投稿者投稿内容
hana
会議室デビュー日: 2003/11/10
投稿数: 8
投稿日時: 2003-12-02 21:08

お世話になっております。
先日はありがとうございました。
恐縮ですが、またXMLSchemaの正規表現についての質問です。

1〜nの可変長のデータに対して、最初と最後の文字に'/'が入ってはいけない(2〜n-1まではOK)という表現がしたいのですが、
xsd:patternでどのように記述すればいいのか自分なりに考えてみましたが全くわかりませんでした。

わかる方いらっしゃいましたらどうかご教授願えませんでしょうか。

宜しくお願い致します。
yatcin
会議室デビュー日: 2003/11/21
投稿数: 12
投稿日時: 2003-12-03 08:47
私の使用している環境にXMLスキーマを検証する手段がありませんので的外れでしたらすみません。解決のヒントにでもなれば幸いです。

引用:

hanaさんの書き込み (2003-12-02 21:08) より:

1〜nの可変長のデータに対して、最初と最後の文字に'/'が入ってはいけない(2〜n-1まではOK)という表現がしたいのですが、
願い致します。



上記の要件から、もしかすると
・nが1文字の場合の出現パターン(たとえば['/'以外の文字])
・nが2文字の場合の出現パターン
・nが3文字以上の場合の出現パターン(['/'以外の文字」[全ての文字]+['/'以外の文字」)
の3つの出現パターンが存在するかもしれませんね。

そこで正規表現の方法として「or指定」と「グループ化」というのがありますので

 パターンA 又は パターンB 又は パターンC

という指定はどうでしょう。
よねくら
常連さん
会議室デビュー日: 2002/04/24
投稿数: 29
投稿日時: 2003-12-03 08:50
あんまり自信がありませんが...

<xsd:restriction base="xsd:string">
<xsd:pattern value="[^(?&lt;!/)].+[^(?&lt;!/)]"/>
</xsd:restriction>


[ メッセージ編集済み 編集者: よねくら 編集日時 2003-12-03 08:54 ]
hana
会議室デビュー日: 2003/11/10
投稿数: 8
投稿日時: 2003-12-03 10:16
ご回答ありがとうございました。

よねくらさんの書かれたやり方で試してみたところ出来ました。
ありがとうございます。

それと昨日、自分なりに考えた以下の記述でも出来てるっぽいので報告です。

<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="10"/>
<xsd:pattern value="[^/]([^/]|/?[^/])*"/>
</xsd:restriction>
1

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