我正在尝试从下面的 XML 架构 (.xsd) 在 Visual Studio 2012 中“生成示例 XML”(通过 XML 架构设计器、内容视图),但出现以下错误
StartIndex 不能小于零。参数名称: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>