0

我定义了这个 XSD 元素:

<xsd:element name="CU_FIRST_NAME">
    <xsd:annotation>
        <xsd:documentation>
            The first name of the customer that is getting billed for the order
        </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="50"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>

我知道这可以用单个元素替换,但我有一个更复杂的元素(序列),我需要将其设为可选。

有没有办法使第一个子元素(即层次结构中的下方<xsd:schema>)元素可选?

为了清楚起见,我想让整个CU_FIRST_NAME节点及其所有子节点成为可选的。

4

2 回答 2

1

我最终意识到我使用的元素实际上是更高级别对象中的引用。

我解决这个问题的方法是:

原始代码:

<xsd:element ref="CU_FIRST_NAME"/>

新代码:

<xsd:element ref="CU_FIRST_NAME" minOccurs="0"/>

所以,我真的问错了问题。

于 2012-08-30T21:04:41.123 回答
0
<xs:element name="item" maxOccurs="unbounded">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="title" type="xs:string"/>
      <xs:element name="note" type="xs:string" minOccurs="0"/>
      <xs:element name="quantity" type="xs:positiveInteger"/>
      <xs:element name="price" type="xs:decimal"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

minOccurs="0"在第一个元素中使用。这样一来,如果您选择顶部,则必须选择其余部分。但如果你也把它放在孩子身上,那么它们都是可选的。

于 2012-08-30T20:40:51.747 回答