当前位置: 首页 > 知识库问答 >
问题:

jaxb xjc创建列表而不是列表

锺离高丽
2023-03-14

我有一个像这样的xsd-

<xs:element name="teachers" minOccurs="0">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="teacher" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

当我使用XJC生成类绑定时,我看到教师是List类型的

protected List<Object> teacher;
public List<Object> getTeacher() {
        if (teacher == null) {
            teacher = new ArrayList<Object>();
        }
        return this.teacher;
    }

如何生成字符串列表而不是对象?任何帮助都很感激。

更新:使用“vamsilp”提供的解决方案——在删除“教师”元素上的“minOccurs”后,它工作得很好!XSD是由泽西从以下代码自动生成的:

@XmlElementWrapper(name = "teachers")
@XmlElement(name = "teacher")
public StringSet getTeachers() {
    return getData().getTeacherss();

我不知道如何删除“minOccurs”属性。我是否需要修改代码以忽略它?

共有1个答案

景宏富
2023-03-14

首先,我不明白如何生成类,相反,它应该向您显示一个错误,即“minOccurs”不能出现在元素“element”中,因为您已将minOccur约束声明给全局/根元素“teachers”。你不应该那样做,请参考这个。尝试通过删除该约束来重新生成JAXB类

 类似资料:
  • 我正在寻找在Java-8中过滤列表的最干净的方法,用一个简单的lambda ,而不用创建一个新的列表。 特别是,这种解决方案不合适,因为返回一个新的: 注意,下面的解决方案也不起作用,因为列表应该< code>clear()其原始值(但是很明显,如果您在过滤之前清除它,就没有什么可过滤的了...): (此外,我更喜欢不使用第三方库或框架的解决方案)

  • 问题内容: 我正在使用此代码将转换为: 我想避免在循环的每次迭代中创建一个新列表。那可能吗? 问题答案: 您可以使用List.addAll()方法。它接受Collection作为参数,而您的集合就是Collection。 编辑: 作为对问题的编辑的回应。 很容易看出,如果要使用带有s作为值,则要具有k个不同的值,则需要创建k个不同的列表。 因此:您完全无法避免创建这些列表,必须创建列表。 可能的解

  • 我试图访问MyModelClass上的getter方法,但我的代码返回

  • 我现有的使用阻止队列的代码创建了一个阻止队列列表(如私有列表 任何帮助将不胜感激。

  • 我正在处理 PostgreSQL 客户记录。 我的任务是导出客户记录。 除了有联系信息的客户之外,我还有另一张桌子。 每行一个联系人项目(电话、值或电子邮件、值等)。 当我加入并关联数据时,我会为每个客户ID提取多个记录(如果每个客户有一个以上的通信类型,例如电话和电子邮件)。 我怎么能不为每种通信类型再做一行,而是将信息放入临时列(如电话列,传真列和电子邮件列)中 - 然后每个客户只有1行。 编

  • 对于C#中泛型列表的泛型列表的概念,我似乎有点难以理解。我认为问题源于