XSD не позволяет мне иметь неограниченный во всем индикаторе

Я пытаюсь составить незаказанный список переменных в var1, происходит дважды, и var2 происходит бесконечные времена (Вариант использования в моем проекте отличается). Элемент не позволяет мне использовать maxOccurs.

Есть ли какая-либо работа вокруг для того, что я пытаюсь сделать?

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="testcomment">
    <xs:complexType>
      <xs:all>
        <xs:element name="var1" type="xs:string" maxOccurs="2" />
        <xs:element name="var2" type="xs:integer" maxOccurs="unbounded" />
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
16
задан brabster 2 March 2010 в 10:42
поделиться

1 ответ

То, что вы пытаетесь сделать, похоже на то, что тип элемента в вашем списке может быть неоднозначным без предварительного чтения, и в этом случае в XSD нет возможности обойти это из-за классов языков, которые он может описывать.

Можете ли вы опубликовать соответствующую часть вашего XSD?


Обновление: Нет, вы не можете сделать это с XSD. Правила о том, что можно поместить в элемент , перечислены, например, здесь. У этого ограничения есть название - UPA, или ограничение Unique Particle Attribution. Оно связано с неоднозначностью, и на сайте Microsoft есть хорошее объяснение того, почему оно существует здесь.

Вы можете либо изменить структуру документа, чтобы устранить необходимость в подобном объявлении, либо обратиться к более выразительному языку схем, например RelaxNG.

2
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: