Я пытаюсь составить незаказанный список переменных в 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>
То, что вы пытаетесь сделать, похоже на то, что тип элемента в вашем списке может быть неоднозначным без предварительного чтения, и в этом случае в XSD нет возможности обойти это из-за классов языков, которые он может описывать.
Можете ли вы опубликовать соответствующую часть вашего XSD?
Обновление: Нет, вы не можете сделать это с XSD. Правила о том, что можно поместить в элемент
, перечислены, например, здесь. У этого ограничения есть название - UPA, или ограничение Unique Particle Attribution. Оно связано с неоднозначностью, и на сайте Microsoft есть хорошее объяснение того, почему оно существует здесь.
Вы можете либо изменить структуру документа, чтобы устранить необходимость в подобном объявлении, либо обратиться к более выразительному языку схем, например RelaxNG.