"XSD Not Valid" 但是怎么办?
"XSD Not Valid" but how?
我有 运行 以下 XSD 通过几个在线 XSD 验证器,但 none 他们告诉我
我的 XSD 怎么了?它只是说“XSD 无效”。任何帮助识别问题或
将我指向一个可以帮助我确定问题的站点。这只是
我的第二个 XSD 所以我对它在某些方面不正确并不感到惊讶。
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<xsd:element name='DemandData'>
<xsd:complexType>
<xsd:sequence>
<xsd:element name='RateInformation' minOccurs='1' maxOccurs='5000'>
<xsd:complexType>
<xsd:all>
<xsd:element name='RateID' minOccurs='1' nillable='false' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:minLength value='19'/>
<xsd:maxLength value='19'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='RateName' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='RatePlan_Url' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:element name='RateType' minOccurs='1' nillable='true' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='R-D' />
<xsd:enumeration value='C-D' />
<xsd:enumeration value='V-D' />
<xsd:enumeration value='CPP' />
<xsd:enumeration value='VPP' />
<xsd:enumeration value='RTP' />
<xsd:enumeration value='DSR' />
<xsd:enumeration value='TOU' />
<xsd:enumeration value='T-D' />
<xsd:enumeration value='GHG' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element><xsd:element name='Sector' minOccurs='0' nillable='true' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='CEV' />
<xsd:enumeration value='Ind' />
<xsd:enumeration value='Res' />
<xsd:enumeration value='Agr' />
<xsd:enumeration value='All' />
<xsd:enumeration value='REV' />
<xsd:enumeration value='Com' />
<xsd:enumeration value='CIA' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='API_Url' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='All' />
<xsd:enumeration value='EV' />
<xsd:enumeration value='Other' />
<xsd:enumeration value='Solar' />
<xsd:enumeration value='Battery' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='PriceInformation'>
<xsd:complexType>
<xsd:sequence>
<xsd:element name='PriceData'>
<xsd:complexType>
<xsd:all>
<xsd:element name='DateStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DateEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DayStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DayEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='Price' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='PriceName' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='TimeStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='TimeEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='Unit' minOccurs='1' nillable='false' maxOccurs='1' />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
这是一个 link 给其中一个我收到 XSD 语法错误的验证器:
https://extendsclass.com/xml-schema-validator.html
大多数 XSD 处理器至少会检测到 PriceInformation
、
之前的结束 xsd:element
标记
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='All' />
<xsd:enumeration value='EV' />
<xsd:enumeration value='Other' />
<xsd:enumeration value='Solar' />
<xsd:enumeration value='Battery' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element> <!-- Parsing realizes something is wrong here -->
<xsd:element name='PriceInformation'>
缺少匹配的开始标记 – 这只是 XML 级别的基本格式正确性检查。
问题是 xsd:element
结束标签的匹配开始标签被错误地自关闭:
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
^
删除 /
字符,然后 XSD 将是合式的。
我有 运行 以下 XSD 通过几个在线 XSD 验证器,但 none 他们告诉我 我的 XSD 怎么了?它只是说“XSD 无效”。任何帮助识别问题或 将我指向一个可以帮助我确定问题的站点。这只是 我的第二个 XSD 所以我对它在某些方面不正确并不感到惊讶。
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<xsd:element name='DemandData'>
<xsd:complexType>
<xsd:sequence>
<xsd:element name='RateInformation' minOccurs='1' maxOccurs='5000'>
<xsd:complexType>
<xsd:all>
<xsd:element name='RateID' minOccurs='1' nillable='false' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:minLength value='19'/>
<xsd:maxLength value='19'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='RateName' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='RatePlan_Url' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:element name='RateType' minOccurs='1' nillable='true' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='R-D' />
<xsd:enumeration value='C-D' />
<xsd:enumeration value='V-D' />
<xsd:enumeration value='CPP' />
<xsd:enumeration value='VPP' />
<xsd:enumeration value='RTP' />
<xsd:enumeration value='DSR' />
<xsd:enumeration value='TOU' />
<xsd:enumeration value='T-D' />
<xsd:enumeration value='GHG' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element><xsd:element name='Sector' minOccurs='0' nillable='true' maxOccurs='1'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='CEV' />
<xsd:enumeration value='Ind' />
<xsd:enumeration value='Res' />
<xsd:enumeration value='Agr' />
<xsd:enumeration value='All' />
<xsd:enumeration value='REV' />
<xsd:enumeration value='Com' />
<xsd:enumeration value='CIA' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='API_Url' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='All' />
<xsd:enumeration value='EV' />
<xsd:enumeration value='Other' />
<xsd:enumeration value='Solar' />
<xsd:enumeration value='Battery' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='PriceInformation'>
<xsd:complexType>
<xsd:sequence>
<xsd:element name='PriceData'>
<xsd:complexType>
<xsd:all>
<xsd:element name='DateStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DateEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DayStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='DayEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='Price' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='PriceName' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='TimeStart' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='TimeEnd' minOccurs='1' nillable='false' maxOccurs='1' />
<xsd:element name='Unit' minOccurs='1' nillable='false' maxOccurs='1' />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
这是一个 link 给其中一个我收到 XSD 语法错误的验证器: https://extendsclass.com/xml-schema-validator.html
大多数 XSD 处理器至少会检测到 PriceInformation
、
xsd:element
标记
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='All' />
<xsd:enumeration value='EV' />
<xsd:enumeration value='Other' />
<xsd:enumeration value='Solar' />
<xsd:enumeration value='Battery' />
</xsd:restriction>
</xsd:simpleType>
</xsd:element> <!-- Parsing realizes something is wrong here -->
<xsd:element name='PriceInformation'>
缺少匹配的开始标记 – 这只是 XML 级别的基本格式正确性检查。
问题是 xsd:element
结束标签的匹配开始标签被错误地自关闭:
<xsd:element name='EndUse' minOccurs='0' nillable='true' maxOccurs='1' />
^
删除 /
字符,然后 XSD 将是合式的。