Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XML架构模式错误_Java_Regex_Validation_Xsd_Jaxb - Fatal编程技术网

Java XML架构模式错误

Java XML架构模式错误,java,regex,validation,xsd,jaxb,Java,Regex,Validation,Xsd,Jaxb,我正在尝试编写一个XML模式。具体要求我验证一个字段,使其以字母开头,后跟字母数字字符(例如,Foo3x4有效,3Foo或Foo3_u无效) 我就是这样写的: <xsd:simpleType name="nameType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="^[a-zA-z][a-zA-Z0-9]*$" /> </xsd:restriction

我正在尝试编写一个XML模式。具体要求我验证一个字段,使其以字母开头,后跟字母数字字符(例如,Foo3x4有效,3Foo或Foo3_u无效)

我就是这样写的:

<xsd:simpleType name="nameType">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="^[a-zA-z][a-zA-Z0-9]*$" />
    </xsd:restriction>
</xsd:simpleType>

但是,如果我尝试验证一个名为H0的文档,它会给出以下错误(由我翻译成英语):

cvc模式有效:值“H0”作为类型nameType的模式“^[a-zA-z][a-zA-Z0-9]*$”的刻面无效

我不明白为什么。在(
/^[a-zA-z][a-zA-Z0-9]*$/gm
)上使用它,它可以工作。我在模式规范中遗漏了什么吗


最后一个细节。验证错误由jaxbjava框架中的封送员给出

您需要删除隐式锚定的
^
$
以及
^
$
在这些模式中不用作锚定,并修复
[a-zA-z]
字符类中的打字错误,如果您需要匹配任何ASCII字母(请参阅,
[a-z]
不仅匹配ASCII字母)

使用


此模式实际上将匹配以下内容

  • 隐式匹配字符串的开头
  • [a-zA-Z]
    -任何ASCII字母
  • [a-zA-Z0-9]*
    -零个或多个ASCII字母和/或数字
  • 隐式匹配字符串的结尾
<xsd:pattern value="[a-zA-Z][a-zA-Z0-9]*" />