5

XSDタイプの制限を作成して、サイズ0〜64の要素、ドット、およびサイズ0〜64の別の要素のみを許可したいと思います。これを試しましたが、成功しませんでした。

<xs:simpleType name="myString_Type">
        <xs:restriction base="xs:string">
            <xs:pattern value="^([a-zA-Z\-]){0-64}.$([a-zA-Z\-]){0-64}"/>
        </xs:restriction>
</xs:simpleType>

ありがとう。

4

1 に答える 1

4

^XSDの正規表現には使用され$ません。最初と最後から、あたかもそこにあるかのように常に一致します。したがって、それらを省略してください。

[a-zA-Z\-]{0,64}\.[a-zA-Z\-]{0,64}

そしてエスケープします.(またはNullUserExceptionが言ったように文字クラスを使用します)。

XMLスキーマパート2から:データ型の仕様:

一部の一般的な正規表現言語(Perlおよび標準のUnixユーティリティで定義されたものを含む)とは異なり、ここで定義された正規表現言語は、すべての正規表現を先頭と末尾に暗黙的に固定します。リテラル全体。

彼らの例は使用しA.*Zないことです^A.*Z$

^とは特殊文字ではないため$、xmlドキュメントでそれらを一致させようとします。

unixは互換性のない正規表現構文のコレクションであると言われているため、unix標準に従わないことにより、unixの伝統に従っています。


この例は、http://www.utilities-online.info/xsdvalidation/(NullUserExceptionからのテストインスタンス)でテストできます

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="eg" type="myString_Type"/>

  <xs:simpleType name="myString_Type">
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z\-]{0,64}\.[a-zA-Z\-]{0,64}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

<eg>something.something-else</eg>
于 2012-11-12T17:01:47.050 に答える