Avatar billede sagdjb Nybegynder
10. oktober 2002 - 11:22 Der er 3 kommentarer

Specifikt namespace spørgsmål

Hejsa alle,

Jeg har et MEGET specifikt spørgsmål. Jeg er ved at transformere fra W3C-schema til andet format, og har løbet ind i problemer omkring namespaces:

Hvis et schema er "qualified", så skal elementerne i roden ref's til targetNamespace, men de har intet prefix (forvirret så se nedenstående eksempel):

<?xml version="1.0"?>
<xs:schema targetNamespace="ContactList" xmlns:cl="ContactList" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:group name="nameDetails">
    <xs:sequence>
      <xs:element name="firstName" type="string"/>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="nameType">
    <xs:sequence>
      <xs:group ref="cl:nameDetails"/>
    </xs:sequence>
  </xs:complexType>
  ...

Bemærk at gruppen har en attribut name som er "nameDetails", men når man peget på den senere hedder den "cl:nameDetails". Dette er et problem..!! Siden det er data og ikke elementer kan man ikke benytte local-name() og namespace-uri(), og man kan ikke hardkode det ind...!!

En mulighed som jeg ser, er ved at få fat i prefix navnet fra schema-tag'et, men stylesheet processoren kender ikke xmlns-attributten (den ser den ikke som en attribut).

Er der nogle der kender en snedig måde at få fat i namespace prefixet i schema-headeren eller en anden løsning på problemet???
Avatar billede Slettet bruger
10. oktober 2002 - 14:28 #1
Transformerer du vha. XSLT ?

I så fald kan du måske benytte dig af elementet <namespace-alias /> (fra XSLT-namespacet)

/CS
Avatar billede sagdjb Nybegynder
10. oktober 2002 - 14:52 #2
Ups, jeg har glemt at sige at det er xslt, men jeg skriver under denne gruppe. Namespace-alias er desværre ganske statisk, hvilket betyder at man skal kende namespacet på forhånd.

Jeg arbejder lidt med brugen af namespace::*, som måske kan give effekten.
Avatar billede Slettet bruger
16. oktober 2002 - 20:48 #3
Okay - du ved altså hverken hvad prefix eller namespace er på forhånd, men skal alligevel linke dem?

/CS
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