"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 将是合式的。