Как сделать группу элементов необязательной в XSD (ie. MinOccurs = "0")? - PullRequest
1 голос
/ 16 апреля 2020

Есть ли более простой способ сделать группу элементов под сложным тегом необязательной в XSD? (ie, minOccurs для каждого должно быть 0)? В настоящее время я добавляю minOccurs="0" отдельно для каждого элемента.

Кроме того, есть ли способ установить / изменить мощность по умолчанию от minOccurs="1" до minOccurs="0" для всех элементов, которые я определяю в своей схеме?

1 Ответ

1 голос
/ 16 апреля 2020

Кроме того, есть ли способ установить / изменить мощность по умолчанию от minOccurs="1" до minOccurs="0" для всех элементов, которые я определяю в своей схеме?

Нет, есть not.

В настоящее время я добавляю minOccurs="0" индивидуально к каждому элементу.

Это именно то, что вы должны делать.

Есть ли более простой способ сделать группу элементов под сложным тегом необязательной в XSD? (ie, minOccurs для каждого должно быть 0)?

Да, но следует понимать, что значение параметра таково, что оно применяется к семантике группы моделей. Например, для xs:sequence,

<xs:sequence minOccurs="0">
  <xsl:element name="a"/>
  <xsl:element name="b"/>
  <xsl:element name="c"/>
</xs:sequence>

означает, что последовательность, вместе , является необязательной - не , что каждый элемент по отдельности необязательно.

Для xs:choice,

<xs:choice minOccurs="0">
  <xsl:element name="a"/>
  <xsl:element name="b"/>
  <xsl:element name="c"/>
</xs:choice>

означает, что выбор между a, b и c сам по себе является необязательным ( Вы можете выбрать ноль или один из них) - опять же, , а не , что каждый элемент индивидуально необязательно.

...