【问题标题】:Nested list in XSDXSD 中的嵌套列表
【发布时间】:2018-02-06 00:19:31
【问题描述】:

是否可以在 XSD 中表示嵌套列表?我试图代表以下内容:

ids : [ [item1_1, item1_2], [item2_1, item2_2] ]

通常,要表示单个列表,它如下所示,但我无法生成像上面这样的嵌套版本。

<xs:element name="ids" type="xs:string" minOccurs="0" maxOccurs="unbounded">

【问题讨论】:

  • 为什么在提出 XML 问题时发明一些人为的、非标准的语法?
  • @kjhughes 我正在寻找基于这些 XSD 的 java 对象,我想在 xsd 中表示嵌套列表。
  • 谢谢@kjhughes,我在下面的回复中添加了评论

标签: java xml xsd jaxb xsd-validation


【解决方案1】:

未命名的嵌套列表

<?xml version="1.0"?>
<xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ids">
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="item" type="xs:string" 
                    minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

命名嵌套列表

<?xml version="1.0"?>
<xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ids">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nested" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="item" type="xs:string" 
                          minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

【讨论】:

  • 我尝试了第一个(未命名的)sn-p,它生成了一个新类,由于某种原因,它只有一个 List 调用项,而不是 List>
  • 看来您的问题更多是工具(您使用的是 JAXB 吗?)操作或配置问题,而不是 XSD 设计问题。
  • 对不起,如果不清楚,对xsds不是很熟悉。看起来我正在做的项目确实在使用 JAXB
  • 我在您的问题中添加了jaxb 标签。我建议您更新标题和问题以更清楚地解释您尝试过的内容,包括包含 JAXB 配置文件的 minimal reproducible example
猜你喜欢
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
相关资源
最近更新 更多