Я пытался изучить XSD и пробовал образец проекта в eclipse. Итак, я создал два xsd с именами HospitalSchema.xsd и PatientSchema.xsd. Я пытаюсь передать элемент сложного типа из HospitalSchema.xsd в PatientSchema.xsd, импортировав HospitalSchema.xsd. Вот xsd:
HospitalSchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/HospitalSchema"
xmlns:tns="http://www.example.org/HospitalSchema" elementFormDefault="qualified">
<element name="Hospital">
<complexType>
<all>
<element name="name" type="string"/>
<element name="Address" type="string"/>
</all>
</complexType>
</element>
PatientSchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/PatientSchema"
xmlns:tns="http://www.example.org/PatientSchema" elementFormDefault="qualified"
xmlns:hoschema="http://www.example.org/HospitalSchema">
<import namespace="http://www.example.org/HospitalSchema" schemaLocation="HospitalSchema.xsd"/>
<element name="patient" type="tns:patientType" />
<complexType name="patientType">
<sequence>
<element name="id" type="tns:ID" />
<element name="name" type="tns:string15Chars" />
<element name="dob" type="date" />
<element name="gender" type="tns:Gender" />
<element name="payBy" type="tns:Payment"/>
<element name="hospitalName" type="hoschema:Hospital" />
</sequence>
</complexType>
<simpleType name="ID">
<restriction base="int">
<pattern value="[0-9]*"></pattern>
</restriction>
</simpleType>
<simpleType name="string15Chars">
<restriction base="string">
<maxLength value="15"></maxLength>
</restriction>
</simpleType>
<simpleType name="Gender">
<restriction base="string">
<enumeration value="M"></enumeration>
<enumeration value="F"></enumeration>
</restriction>
</simpleType>
<complexType name="Payment">
<choice>
<element name="cash" type="int"/>
<element name="insurance" type="tns:Insurance"/>
</choice>
</complexType>
<complexType name="Insurance">
<all>
<element name="provider" type="string"/>
<element name="limit" type="int"/>
</all>
</complexType>
type = "hoschema : Hospital "- это сложный тип, который я пытаюсь импортировать из другой схемы. Но Eclipse выдавал ошибку, говоря:
src-resolve: Cannot resolve the name 'hoschema:Hospital' to a(n) 'type definition' component. PatientSchema.xsd /Patient line 17 XML Schema Problem
Оба XSD находятся в одном проекте Eclipse. Может кто-нибудь помочь?