栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JAXB-在xsd:all内部具有不受限制的maxOccur的元素

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAXB-在xsd:all内部具有不受限制的maxOccur的元素

假设您仍然可以修改此模型,则可以将角色列表包装为自己的类型,因此最终得到一个

<roles>
带有
<role>
s 列表的元素

<SearchParams>    <firstname>firstname</firstname>    <lastname>lastname</lastname>    <roles>        <role>role</role>    </roles></SearchParams>

XSD将是

<xsd:schema ... >    <xsd:element name="SearchParams">        <xsd:complexType> <xsd:all>     <xsd:element name="firstname" type="xsd:string" />     <xsd:element name="lastname" type="xsd:string" />     <xsd:element name="roles" type="Roles" /> </xsd:all>        </xsd:complexType>    </xsd:element>    <xsd:complexType name="Roles">        <xsd:sequence> <xsd:element name="role" type="xsd:string" maxOccurs="unbounded" />        </xsd:sequence>    </xsd:complexType></xsd:schema>

而且您将有两个班级。

Roles
包含列表的类。海事组织,这是一种更清洁的方法。(您可以
Roles
将其设为匿名,但随后您将陷入静态的内部类中)

@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {})@XmlRootElement(name = "SearchParams")public class SearchParams {    @XmlElement(required = true)    protected String firstname;    @XmlElement(required = true)    protected String lastname;    @XmlElement(required = true)    protected Roles roles;    ...}@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "Roles", propOrder = {    "role"})public class Roles {    @XmlElement(required = true)    protected List<String> role;    ...}

更新

“如果我可以通过这种方式更改模型类,那么这将是解决此问题的好方法。不幸的是,我只允许更改注释”

您可以使用

@XmlList

@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {})@XmlRootElement(name = "SearchParams")public class SearchParams {    @XmlElement(required = true)    protected String firstname;    @XmlElement(required = true)    protected String lastname;    @XmlList    @XmlElement(required = true)    protected List<String> role;    ...}

xsd看起来像

<xsd:element name="SearchParams">    <xsd:complexType>        <xsd:all> <xsd:element name="firstname" type="xsd:string" /> <xsd:element name="lastname" type="xsd:string" /> <xsd:element name="role">     <xsd:simpleType>         <xsd:list itemType="xsd:string" />     </xsd:simpleType> </xsd:element>        </xsd:all>    </xsd:complexType></xsd:element>

注: 如前所述 这里
,这种方法是一种“危险的”,我在文章的开头的解决方案优于使用

list
字符串类型的。但在您的特定情况下,不确定我是否看到另一种方式



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号