Avatar billede tknudsen Nybegynder
12. november 2004 - 10:06 Der er 1 løsning

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>
Avatar billede tknudsen Nybegynder
19. november 2004 - 21:37 #1
jeg fik det til at virke ved at tilføjet .../login namespace i import filen, og angive typen på elementet til at være fra dette namespace.

<?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"
    xmlns:login="http://www.intranote.com/classes/login"
>
    <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:Login" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
   
</xs:schema>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester