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???