Зачем использовать для одного ? - PullRequest
1 голос
/ 13 апреля 2020
<xsd:complexType>
<xsd:sequence>
<xsd:element name="allowFieldTruncation" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>

В приведенном выше примере у меня есть только один элемент (называемый allowFieldTruncation), определенный для комплексного типа, и у меня нет требования для minOccurs или maxOccurs . Теперь мой вопрос: почему я должен включать тег последовательности - не может ли определение быть таким, как показано ниже?

<xsd:complexType>
<xsd:element name="allowFieldTruncation" type="xsd:boolean"/>
</xsd:complexType>

1 Ответ

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

Поскольку XSD spe c говорит так :

<complexType
  abstract = boolean : false
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID
  mixed = boolean : false
  name = NCName
  {any attributes with non-schema namespace . . .}>
  Content: (annotation?, 
            (simpleContent | complexContent 
            | ((group | all | choice | sequence)?, 
               ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

Думайте о xsd:sequence как об одной из нескольких групп моделей, необходимых, если вы sh задаете xsd:element в контентной модели. (Вы могли бы использовать другой, кроме xsd:sequence.) Возможно, дизайн не позволял указывать группы моделей для «групп» одного элемента, однако, поскольку исключения и неровности go, требовалось провести волнистую размытую линию XSD где-то.

...