1

XSD仕様からXMLファイルを作成するためにJAXB1.0.6(プロジェクトはJDK1.4で開始され、これが最後の互換性のあるバージョンです)を使用しています。XSDは、次の正規表現パターンで属性「email」を定義します。

<xs:simpleType name="EmailAddress">
    <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="60"/>
        <xs:pattern value="([\w%\.\-]+@[\w%\.\-]+\.[a-zA-Z]{2,6})?"/>
    </xs:restriction>
</xs:simpleType>

電子メールbla_bla@somewhere.comを入力しようとすると、検証は失敗し、次のメッセージが表示されます。

    attribute "email" has a bad value: the value does not match the 
regular expression "([\w%\.\-]+@[\w%\.\-]+\.[a-zA-Z]{2,6})?

IMHO、文字クラス\wは同等です[a-zA-Z0-9_]

したがって、bla_bla@somewhere.comは式を満たします。アンダースコアを省略すると、検証は正常に合格します。なぜこうなった?

よろしく

4

1 に答える 1