Во-первых, я бы преобразовал ваш TransactionHeader в отдельный тип:
<xs:complexType name="TransactionHeaderType">
<xs:sequence>
<xs:element ref="Quarter"/>
<xs:element ref="Year"/>
<xs:element ref="FuelPathwayCode"/>
<xs:element ref="PhysicalPathwayCode"/>
</xs:sequence>
</xs:complexType>
Затем вы можете определить новый элемент сложного типа, который может содержать любое количество заголовков транзакций:
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="TransactionHeader"
type="TransactionHeaderType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
По умолчанию в XML-схеме minOccurs
и maxOccurs
оба установлены в 1, но в последовательности вы можете изменить это число на что угодно, включая «неограниченное» для maxOccurs.
Марк