我在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}"
                  ^^^^^

10-08 00:21