gpt4 book ai didi

java - Maven 构建在 xsd 模式验证中失败

转载 作者:行者123 更新时间:2023-12-02 10:57:00 25 4
gpt4 key购买 nike

我有一个模式:(?!^0000000000000000000)([0-9]{20}),它应该验证长度为= 20的所有数字,不包括0000000000000000000

我正在编写单元测试:

 String pattern = "(?!^0000000000000000000)([0-9]{20})";
String input = "0000000000000000000";
String input1 = "0000000000000000000123123";
String input2 = "123123"
String input3 = "1231231244245343604";
Assert.assertFalse(input.matches(pattern))
Assert.assertFalse(input1.matches(pattern))
Assert.assertFalse(input2.matches(pattern))
Assert.assertTrue(input3.matches(pattern))

这段代码运行良好,但是当我尝试使用 Maven 和 xsd 中的模式构建我的项目时,它失败并出现验证模式错误我做错了什么?

最佳答案

我建议您使用以下限制:

<xs:restriction base="xs:unsignedLong">
<xs:minInclusive value="1"/>
<xs:pattern value="[0-9]{20}"/>
</xs:restriction>

这可确保您输入的 20 位正数大于 00000000000000000000

如果您需要基于字符串的类型,则必须将模式中所有可能的替代项拼写为 Wiktor Stribiżew建议:

<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{19}[1-9]|[0-9]{18}[1-9][0-9]|[0-9]{17}[1-9][0-9]{2}|[0-9]{16}[1-9][0-9]{3}|[0-9]{15}[1-9][0-9]{4}|[0-9]{14}[1-9][0-9]{5}|[0-9]{13}[1-9][0-9]{6}|[0-9]{12}[1-9][0-9]{7}|[0-9]{11}[1-9][0-9]{8}|[0-9]{10}[1-9][0-9]{9}|[0-9]{10}[1-9][0-9]{9}|[0-9]{9}[1-9][0-9]{10}|[0-9]{8}[1-9][0-9]{11}|[0-9]{7}[1-9][0-9]{12}|[0-9]{6}[1-9][0-9]{13}|[0-9]{5}[1-9][0-9]{14}|[0-9]{4}[1-9][0-9]{15}|[0-9]{3}[1-9][0-9]{16}|[0-9]{2}[1-9][0-9]{17}|[0-9][1-9][0-9]{18}"/>
</xs:restriction>

关于java - Maven 构建在 xsd 模式验证中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51652358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com