我试图从Visual Studio 2012中“生成示例XML”(通过XML架构设计器,内容视图)从下面的XML架构(.xsd),但我收到以下错误
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>
Saxon架构处理器报告此文档没有错误。它看起来很好。
我使用VS2010 2012和2015得到了同样的错误。实现了我得到的XSD有以下内容:
<xs:simpleType name="Blank">
<xs:annotation>
<xs:documentation>Blank</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="0"/>
</xs:restriction>
</xs:simpleType>
将maxLength更改为1并排序:)
我的XSD似乎是一样的错误。我要改变1到2来解决问题(CTT_POINT_INAPTITURE)。还有VS 2017错误吗?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="CML_SOQUIJ">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="CML_SOQUIJ_TYPE">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="CML_SOQUIJ_DOSSIER_TYPE">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="COUR_MUNICIPALE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_NO_DOSSIER" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="9"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_NO_CONSTAT" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="OGN_NOM" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_DATE_FERMETURE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TLN_CODE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TLN_DESCRIPTION" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AAT_ETAPE_ACTUELLE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_STATUT" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
<xs:enumeration value="ACT"/>
<xs:enumeration value="ENT"/>
<xs:enumeration value="SUS"/>
<xs:enumeration value="FER"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAN_DATE_INFRACTION" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAN_HEURE_INFRACTION" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(0[0-9]|1[0-9]|2[0123]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_POINT_INAPTITURE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_VITESSE_CONSTATEE" type="xs:integer" nillable="true" minOccurs="0"/>
<xs:element name="CTT_VITESSE_ZONE" type="xs:integer" nillable="true" minOccurs="0"/>
<xs:element name="CTT_ENDROIT" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DTE_AMENDE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="10"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_NO_IMMATRICULATION" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_PVE_IMMAT_CODE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_GENRE_DEFENDEUR" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
<xs:enumeration value="MON"/>
<xs:enumeration value="MME"/>
<xs:enumeration value="CIE"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_NOM_DEFENDEUR" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_PRENOM_DEFENDEUR" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_DATE_NAISSANCE_DEF" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_NO_CIVIQUE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_ADRESSE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_VILLE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_PVE_CODE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_CODE_POSTAL" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADR_DATE_MAJ" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_PERMIS_CONDUIRE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_PVE_PERMIS_CODE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DTE_SOLDE_AMENDE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="10"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DTE_SOLDE_FRAIS" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="10"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DTE_SOLDE_DU" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="10"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_MRV_NOM" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_MVE_NOM" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_ANNEE_FAB_VEHICULE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="9999"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DATEMAJ" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ACCUSATION" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="CML_SOQUIJ_ACCUSATION_TYPE" minOccurs="1">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="CAN_NUMERO" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="9"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAN_ALI_RGT_CODE" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAN_ALI_NUMERO" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAN_ALI_DESCRIPTION" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CTT_LIBELLE_INFRACTION" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PCE_DATE_PLAIDOYER" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PCE_TYPE_PLAIDOYER" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="C"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ITT_NOM_PRENOM_AVO" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="JUM_DATE_JUGEMENT" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="JUM_CJN_IND_CULPABILITE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="O"/>
<xs:enumeration value="N"/>
<xs:enumeration value="I"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="JUM_CJN_DESCRIPTION" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PVL_IND_DELIBERE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="O"/>
<xs:enumeration value="N"/>
<xs:enumeration value="I"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PVL_DATE_DELIBERE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DATEMAJ" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AUDITION" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="CML_SOQUIJ_AUDITION_TYPE" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="ADE_SCE_DATE_SEANCE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADE_SCE_HEURE_SEANCE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(0[0-9]|1[0-9]|2[0123]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADE_SCE_SAE_NO_SALLE" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="9"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADE_EAE_DESCRIPTION" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADE_SCE_PROCUREUR" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ITT_NOM_PRENOM_AVO" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PVL_IND_PRESENCE_DEF" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="O"/>
<xs:enumeration value="N"/>
<xs:enumeration value="I"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PVL_IND_PRESENCE_AVO" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="O"/>
<xs:enumeration value="N"/>
<xs:enumeration value="I"/>
<xs:enumeration value="A"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AUDIDATEMAJ" nillable="true" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>