Toon posts:

[ASP & XML] Namespaces en MSXML 4.0

Pagina: 1
Acties:

Verwijderd

Topicstarter
Guru's!

Ik wil in een .asp paginga een xml document doorlopen (met MSXML2.DOMDocument.4.0) waarin namespace prefixes zitten. Wat ik ook probeer (ook icm MSXML2.MXNamespaceManager.4.0) ik krijg steeds

msxml4.dll error '80004005'

Reference to undeclared namespace prefix: 'a'.

Wat is de correcte wijze om de xmlDoc wijs te maken dat er 1 of meerdere prefixes bestaan en mogen voorkomen.

Fictief voorbeeld van zo'n document:

<a:aaa xmlns:a="http://.../a-ns#"
xmlns:b="http://.../b-ns#">
<a:Description a:ID="1234">
<b:component>
<a:Description a:ID="5678">

.... etc.


Alvast bedankt!

Grote groet,
Jan

Verwijderd

<a:Description a:ID="5678">
Die a: prefix bij het attribuut hoeft volgens mij niet want het attribuut verwijst naar het element en die heeft al de a: prefix.

Verwijderd

Deze mag inderdaad absoluut niet!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
CoDeR: Die a: prefix bij het attribuut hoeft volgens mij niet want het attribuut verwijst naar het element en die heeft al de a: prefix.
Nopes, dat is helaas wel nodig. Attributen hebben standaard de no-namespace en niet de namespace van het element waar ze zich in bevinden. Als je dus percee het attribuut in de namespace van het element wilt laten vallen, moet je wel a: ervoor zetten.

Dit voorbeeld illustreert dat:
code:
1
2
3
4
5
<x xmlns:n1="http://www.w3.org" 
   xmlns:n2="http://www.w3.org" >
  <n1:good a="1"  n1:a="2" />
  <good n1:a="1"  n2:a="2" />
</x>

Je ziet hier 2x het "a" attribuut in de eerste tag, wat in dit geval toegestaan is om dat het eerste attribuut geen namespace heeft.

Dit resulteert dus in een fout:
code:
1
2
3
4
5
<x xmlns:n1="http://www.w3.org" 
   xmlns:n2="http://www.w3.org" >
  <n1:good a="1"  a="2" />
  <good n1:a="1"  n2:a="2" />
</x>

Zie de namespace standaard:
http://www.w3.org/TR/1999/REC-xml-names-19990114/

Overigens is ook de default namespace niet van toepassing op attributen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Even samengevat voor als m'n verhaal te moeilijk is: je code is dus goed ;) .

Ik heb jouw code ook nog even door Xerces2 gehaald en die meldt geen problemen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Op woensdag 22 mei 2002 00:56 schreef mbravenboer het volgende:
Even samengevat voor als m'n verhaal te moeilijk is: je code is dus goed ;) .

Ik heb jouw code ook nog even door Xerces2 gehaald en die meldt geen problemen.
Dan zal het probleem wel in de zachte waren van M$ liggen...
:X

Verwijderd

Topicstarter
Goed... ik neem aan dat de xml syntax okay is want het betreft UAProf profiles (according to WAP-248-UAProf-20011020-a)

Het probleem zit waarschijnlijk gewoon in de 'zachte waren' van m$. De foutmelding geeft mij het gevoel dat de prefix-en niet geaccepteerd gaan worden zonder declaraties - en dat kan met de namespace mngr. Ondanks wat pogingen lijkt er nog iets te missen.

Een koppeling tussen de ns mngr en het document misschien?

Ik heb nog nergens voorbeelden gezien hoe MS dit oplost ...

Grote groet,
Jan
Pagina: 1