以下の XML スキーマ (.xsd) から Visual Studio 2012 (XML スキーマ デザイナー、コンテンツ ビュー経由) で "サンプル XML を生成" しようとしていますが、次のエラーが発生します。
StartIndex を 0 未満にすることはできません。パラメータ名: startIndex
このエラーは、3 レベルのネストされたリストに含まれる要素に対するmaxLength="1"制限によって発生します。
root
Level 0 List
Level 1 List
Level 2 List
Level 2 Item Element (maxLength=1)
maxLength を 2 以上に変更すると、エラーはなくなります。または、リスト レベルを削除すると、エラーはなくなります。(代わりに maxLength=1 アイテムをより深いレベルのリストにプッシュすると、エラーは引き続き発生します。)
私が間違っているかもしれないことは何ですか?不足しているスキーマの概念はありますか? または、VS 2012 のバグである可能性はありますか?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Test"
targetNamespace="http://tempuri.org/Test.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Test.xsd"
xmlns:mstns="http://tempuri.org/Test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="level0List">
<xs:complexType>
<xs:sequence>
<xs:element name="level0Item" type="level0Item" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="level0Item">
<xs:sequence>
<xs:element name="level1List">
<xs:complexType>
<xs:sequence>
<xs:element name="level1Item" type="level1Item" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="level1Item">
<xs:sequence>
<xs:element name="level2List">
<xs:complexType>
<xs:sequence>
<xs:element name="level2Item" type="level2Item" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="level2Item">
<xs:sequence>
<xs:element name="level2Element">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>