3
현재 XSD에 문제가 있습니다.XSD에서 반복되는 XML 요소 쌍을 나타 내기
<Entry Num="4">
<Info>
<Name>Something</Name>
<ID>1234</ID>
<Start>2013-01-07</Start>
<Stop>2013-01-09</Stop>
<Completed>6</Completed>
</Info>
</Entry>
그러나 때때로 그것은 다음과 같이 표시됩니다 : 일반적으로 항목은 다음과 같습니다
<Entry Num="5">
<Info>
<Name>SomethingElse</Name>
<ID>5678</ID>
<Start>2013-01-08</Start>
<Stop>2013-01-10</Stop>
<Start>2013-01-11</Start>
<Stop>2013-01-12</Stop>
<Completed>14</Completed>
</Info>
</Entry>
을 시도하고, 나는 다음과 같은 것들을 시도 여러 시작 및 중지에 대한 가능성 캡처 :
<xs:sequence maxOccurs="unbounded">
<xs:element name="Start" type="xs:dateTime" maxOccurs="1"/>
<xs:element name="Stop" type="xs:dateTime" maxOccurs="1"/>
</xs:sequence>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Start" type="xs:dateTime" />
<xs:element name="Stop" type="xs:dateTime" />
</xs:sequence>
<xs:sequence maxOccurs="unbounded">
<xs:sequence>
<xs:element name="Start" type="xs:dateTime" />
<xs:element name="Stop" type="xs:dateTime" />
</xs:sequence>
</xs:sequence>
<xs:sequence maxOccurs="unbounded">
<xs:sequence>
<xs:element name="Start" type="xs:dateTime" maxOccurs="1"/>
<xs:element name="Stop" type="xs:dateTime" maxOccurs="1"/>
</xs:sequence>
</xs:sequence>
을
그러나 이들 모두는 일련 번호가 다음과 같이 연속 된 xsd.exe를 사용하여 C# 클래스로 변환 할 때 Stops 배열로 인쇄됩니다.
<Entry Num="5">
<Info>
<Name>SomethingElse</Name>
<ID>5678</ID>
<Start>2013-01-08</Start>
<Start>2013-01-11</Start>
<Stop>2013-01-10</Stop>
<Stop>2013-01-12</Stop>
<Completed>14</Completed>
</Info>
</Entry>
그리고 이것은 XML 파일과 일치하지 않습니다. 아무도 제대로 이런 식으로하는 방법을 알고 있습니까? 고마워.
나는 작동하는 해결책을 생각해 냈지만 이상적이지는 않습니다.
현재 해결 방법 :
<xs:choice minOccurs="2" maxOccurs="unbounded">
<xs:element name="Start" type="xs:dateTime"/>
<xs:element name="Stop" type="xs:dateTime"/>
</xs:choice>