XSD: 无法将名称解析为 (n) 'type definition' 组件

XSD: Cannot resolve the name to a(n) 'type definition' component

我正在尝试使用 XSD 验证 XML。这是我的 XML 文件:

<PRODUCTS>
    <SELLER>ME</SELLER>
    <CURRENCY>EURO</CURRENCY>
  <PRODUCT>
    <NAME>LAPTOP</NAME>
    <MODEL>DELL</MODEL>
    <PRICE>2500</PRICE>
    <STOCK>100</STOCK>
  </PRODUCT>
  <PRODUCT>
    <NAME>PHONE</NAME>
    <MODEL>IPHONE</MODEL>
    <PRICE>1500</PRICE>
    <STOCK>100</STOCK>
  </PRODUCT>
  <PRODUCT>
    <NAME>TABLET</NAME>
    <MODEL>SAMSUNG</MODEL>
    <PRICE>3000</PRICE>
    <STOCK>700</STOCK>
  </PRODUCT>
</PRODUCTS>

和XSD文件:

<xs:element name="PRODUCTS" type="ProductType"/>
  
  <xs:ComplexType name="ProductType">
    <xs:all>
        <xs:element type="xs:string" name="SELLER"/>
        <xs:element type="xs:string" name="CURRENCY"/>
        <xs:element type="Products" name="PRODUCT"/>
    </xs:all>
  </xs:ComplexType>
  
  <xs:ComplexType name="Products">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="PRODUCT" type="Products"/>
    </xs:sequence>
  </xs:ComplexType>
  
  <xs:complexType name="Products">
    <xs:sequence>
      <xs:element type="xs:string" name="NAMES"/>
      <xs:element type="xs:string" name="MODEL"/>
      <xs:element type="xs:int" name="PRICE"/>
      <xs:element type="xs:int" name="STOCK"/>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>

但是当我尝试验证时出现错误

src-resolve: Cannot resolve the name 'ProductType' to a(n) 'type definition' component.

我不明白为什么会出现此错误以及如何解决此问题。我看到的问题是 XSD 文件中元素的第一行。

XML 和 XSD 区分大小写,因此请将 XSD 中出现的所有 xs:ComplexType 更改为 xs:complexType 以解决眼前的问题。


更新,下一期从评论迁移:

Now I get new error due to duplication of Products: A schema cannot contain two global components with the same name; this schema contains two occurrences of Products.

不能以两种不同的方式用相同的名称定义一个类型。看起来第二个 Products 在参考 (@type) 和定义 (xs:complexType/@name) 中都应该是 Product