importer skema fil i en anden skema fil (xs:import)
Jeg forsøger at anvende en type, som er defineret i een fil, i en anden fil. Typen (Login), skal ikke ligge i samme namespace som den fil, der anvender den, da jeg gerne skulle bruge typen i andre henseender.Jeg er i tvivl om sammenhængen imellem schema attributerne targetNamespace og xmlns= (default namespace).
Hvis jeg fjerner disse fra filen med Login-typen, og bruger xs:include i den anden fil, fungere det, men så ligger Login vel i et "forkert" namespace!?
Filerne ser således ud:
1) import.xsd
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.intranote.com/classes/metadata/import"
xmlns="http://www.intranote.com/classes/metadata/import"
>
<xs:import namespace="http://www.intranote.com/classes/login" schemaLocation="login.xsd" />
<!-- IMPORT DOCUMENT -->
<xs:element name="import">
<xs:complexType>
<xs:sequence>
<xs:element name="login" type="Login" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
2) login.xsd
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.intranote.com/classes/login"
xmlns="http://www.intranote.com/classes/login">
<!-- DEFINE Login class -->
<xs:complexType name="Login">
<xs:sequence>
<xs:element name="username" type="xs:string" />
<xs:element name="md5key" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>