I am defining a schema, but when checking it in eclipse it gives the following error.
src-resolve: Cannot resolve the name "common: Name" to the type definition component (n).
My diagram is as follows:
<?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> .....
and common_v1.xsd is as follows
<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> ......
The problem is that my schema may allow some elements from common_v1.xsd and some not. In the above code, generic: ID does not give any error, but is generic: Name gives an error.
I cannot understand why some of the elements are not allowed.
source share