java - XJB 模式注释无效字符 &(与号)

标签 java regex

我在 xjb 上有以下代码片段:

    <jaxb:bindings node="xs:complexType[@name='MyType']/xs:sequence/xs:element[@name='field']">
        <annox:annotate target="field">
            <annox:annotate annox:class="javax.validation.constraints.Pattern" regexp="[A-Za-z0-9&]{1,8}" groups="javax.validation.groups.Default" message="Invalid pattern" />         
        </annox:annotate>
    </jaxb:bindings>

但是,我尝试使用的模式应该只允许使用字母和数字以及与号 (&)。但是,与号 (&) 破坏了 xjb 验证,并出现以下错误:

实体名称必须紧跟在实体引用中的“&”之后。

如何解决这个问题?

最佳答案

您需要使用 XML 实体作为 & 符号,就像在属性值中使用它一样:

regexp="[A-Za-z0-9&amp;]{1,8}"
                  ^^^^^

关于java - XJB 模式注释无效字符 &(与号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743705/

相关文章:

javascript - 在分隔符每隔一次出现时使用 str.split()

java - 找不到java。请使用 --jdkhome 开关

Java MySQL 执行更新 SQLSyntaxErrorException

java - 在主程序中调用方法

java - JUnit Spring 4 MVC 集成测试失败并出现 BeanCreationException : Error creating bean

Javascript 替换在应该起作用的时候却不起作用

java - Selenium WebDriver 中的隐式等待和显式等待有什么区别?

json - JQ - 替换完整 json 中的字符串

python - 正则表达式不会从日志文件中提取整个 ID?

java - 想要借助正则表达式替换标签中的值属性吗?