我正在定义架构,但在使用eclipse验证时,出现以下错误:
src-resolve: Cannot resolve the name 'common:Name' to a(n) 'type definition' component.
我的架构看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.mycompany.com/myproject/service/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.mycompany.com/myproject/service/v1"
xmlns:product="http://www.mycompany.com/otherproject/service/products/v1"
xmlns:common="http://www.mycompany.com/myproject/service/common/v1" elementFormDefault="qualified">
<xsd:import namespace="http://www.mycompany.com/otherproject/service/products/v1" schemaLocation="products_v1.xsd" />
<xsd:import namespace="http://www.mycompany.com/myproject/service/common/v1" schemaLocation="common_v1.xsd" />
<xsd:element name="GetProductRequest" type="tns:GetProductRequest">
<xsd:annotation>
<xsd:documentation>Get Product Request</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="GetProuctRequest">
<xsd:annotation>
<xsd:documentation>Get Product Request</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ID" type="common:ID" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>ID</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Name" type="common:Name" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Name</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
.....
常用版本v1.xsd的样式如下所示
<xsd:schema targetNamespace="http://www.mycompany.com/myproject/service/common/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.mycompany.com/myproject/service/common/v1"
elementFormDefault="qualified">
<xsd:complexType name="ID">
<xsd:annotation>
<xsd:documentation>ID</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="X" type="xsd:string" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>X</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Y" type="xsd:string" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Y</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Name</xsd:documentation>
</xsd:annotation>
</xsd:element>
......
问题是我的架构能够解析common_v1.xsd的一些元素,但有些则不能。在上面的代码中,common:ID没有出错,但common:Name出现了错误。
我不明白为什么有些元素无法解析。