Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[XML/Schema/XSL] Attribute default value weergeven

Pagina: 1
Acties:

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 23:24

Rhapsody

In Metal We Trust

Topicstarter
Goedemorgen,

Na van alles proberen en zoeken kom ik toch weer uit op GoT.

Ik heb een XML welke een bijbehorend schema heeft.
Het XML document bevat een element 'bedrag'.
In het XML Schema is aangegeven dat dit element een optioneel attribuut 'munteenheid'. Dit attribuut heeft een default value (staat ook aangegeven in het schema.)

Nu wil ik het XML document transformen m.b.v. een XSL stylesheet.
Tot zover gaat het allemaal perfect.

Nu wil ik echter het optionele attribuut opvragen. Dit wil maar niet lukken.
Heb diverse zoekqueries gebruikt en kwam diverse sites tegen waar men een (soort)gelijk probleem had (zoals http://www.stylusstudio.com/xsllist/200305/post31160.html) maar nergens een oplossing.

Heeft iemand enig idee of en hoe ik dit toch kan realiseren. Als ik het XML document laadt via Javascript en dan de waarde van het attribuut opvraag krijg ik wel de juiste waarde te zien, echter wanneer ik de XML transformeer via XSL werkt het voor geen meter.

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Dat komt omdat een XSL(T) transfomer de XML niet parsed, maar 'slechts' leest. De aangeleverde XML dient alle informatie te bevatten welke nodig zijn in de xslt bestanden. Dus het process welke de XML inleest en omzet naar een DOM tree, dient ook de default attributen te zetten, mochten deze nog niet gezet worden.

Bij het inlezen van de XML geeft je aan dat de XML moet voldoen aan een bepaald schema. Deze informatie is echter geen onderdeel van de XML zelf, maar kan beter gezien worden als een soort van meta data. En XSL(T) kan deze meta data niet bereiken. XSL(T) vertaald alleen, welke hebben sommige XSL(T) transformers de mogelijkheid de output te valideren aan een XSD, maar dat is niet onderdeel van de XSL(T) standaarden.

If it isn't broken, fix it until it is..


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 23:24

Rhapsody

In Metal We Trust

Topicstarter
ah oke, dat verklaart. In Javascript (en .NET) wordt het document natuurlijk wel gevalideerd m.b.v. het schema en daarom zijn die attributen ook beschikbaar.

De enige oplossing zou dus zijn een tussenstap die die XML valideert en dan XML (met attributen) teruggeeft... denk ik?

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 22:46

Cyphax

Moderator LNX
Of je schema parsen, da's ook maar gewoon XML, moet kunnen.

Saved by the buoyancy of citrus


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 23:24

Rhapsody

In Metal We Trust

Topicstarter
Cyphax schreef op vrijdag 08 februari 2008 @ 11:53:
Of je schema parsen, da's ook maar gewoon XML, moet kunnen.
En die (schema en de XML) mergen ofzo? Ik snap je niet helemaal... :$

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)