Вместо использования группы определите «Var» как элемент с атрибутом «Ld»:
<complexType name="Var">
<annotation>
<documentation>
Description of what a Var is
</documentation>
</annotation>
<attribute name="Ld" type="string">
<annotation>
<documentation>
Description of what this attribute means
</documentation>
</annotation>
</attribute>
</complexType>
Определение списка ответов:
<complexType name="Answers">
<annotation>
<documentation>
A list of Var elements
</documentation>
</annotation>
<sequence>
<element name="Var" type="Var" minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation>
The list of Var elements
</documentation>
</annotation>
</element>
</sequence>
</complexType>
Тогда вместо этого:
<xsd:group ref="Answers"
minOccurs="0"
maxOccurs="unbounded"/>
Вы бы использовали это:
<element name="answers" type="Answers"/>
Кроме того, хорошее эмпирическое правило заключается в том, чтобы пространство имен по умолчанию соответствовало типу файла, который вы пишете. Поэтому, если вы пишете схему, поместите ее в корневой элемент, и вам не нужно будет везде писать префиксы "xsd":
xmlns="http://www.w3.org/2001/XMLSchema"
И также неплохо создать целевое пространство имен для вашей схемы, чтобы ваши элементы имели ассоциированное пространство имен:
targetNamespace="http://my.example.com/schema"
xmlns:mec="http://my.example.com/schema"
Что означало бы, что ваши элементы будут называться type = "mec: Project" вместо просто "Project" и, следовательно, предотвращают любые будущие проблемы при использовании этой схемы вместе с другой.