1

我想使用 org/w3/_2001/xmlschema 的 JAXB 和 ObjectFactory 类生成以下 XSD Schema

<xs:element name="result">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="sfobject" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element type="xs:string" name="id"/>
                <xs:element type="xs:string" name="type"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
</xs:element>

但我得到 XSD 为:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="result">
      <xs:complexType>
           <xs:sequence/>
      </xs:complexType>
 </xs:element>
 <xs:element name="sfobject" maxOccurs="unbounded" minOccurs="0">
       <xs:complexType>
           <xs:sequence/>
      </xs:complexType>
 </xs:element>
 <xs:element type="xs:string" name="id"/>
 <xs:element type="xs:string" name="type"/>
</xs:schema>

我无法在另一个元素中添加一个元素。我如何使用 JAXB 和 ObjectFactory 方法在 Java 中做到这一点。

示例代码:

列出 schemaElementList = schema.getSimpleTypeOrComplexTypeOrGroup();

    TopLevelElement resultElement = xsdObjFactory.createTopLevelElement();
    resultElement.setName("result");
    LocalComplexType resultCompType = xsdObjFactory.createLocalComplexType();
    resultElement.setComplexType(resultCompType);
    resultCompType.setSequence(expGroup);

    Element sfElement = (Element)xsdObjFactory.createLocalElement();

    sfElement.setName("sfobject");
    sfElement.setMaxOccurs("unbounded");
    sfElement.setMinOccurs(new BigInteger("0"));
    LocalComplexType sfCompType = xsdObjFactory.createLocalComplexType();
    sfElement.setComplexType(sfCompType);

    schemaElementList.add(resultElement);
4

0 回答 0