Met xslt kun je xml documenten naar nieuwe xml documenten transformeren. Is er een vergelijkbare (dus met templates en xpath etc) 'standaard' techniek voor het transformeren van xml documenten naar niet-xml documenten (zoals bijvoorbeeld sourcecode) ?
dat is toch juist het hele idee van xslt, dat je een xml document omzet naar elke andere vorm die je maar wenst
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Nee, ik citeer de XSLT recommendation:Op donderdag 09 mei 2002 02:31 schreef drm het volgende:
dat is toch juist het hele idee van xslt, dat je een xml document omzet naar elke andere vorm die je maar wenst
XSLT, which is a language for transforming XML documents into other XML documents
Dat is maar net hoe je het uitlegt.Op donderdag 09 mei 2002 02:50 schreef Sneechy het volgende:
Nee, ik citeer de XSLT recommendation:
XSLT is wel degelijk voor transformatie naar elke andere vorm.
Who is John Galt?
Ik heb nog even rondgevraagd op irc, en ook daar werd mij veelvuldig mede gedeeld dat xslt inderdaad toch echt voor allerlei (ook non-xml) transformaties geschikt is.
Toch vreemd dat xslt dan eigenlijk meer general-purpose is dan ze in de recommendation vermelden..
Toch vreemd dat xslt dan eigenlijk meer general-purpose is dan ze in de recommendation vermelden..
Volgens mij is het gewoon spraakverwarring.
Ik geloof dat XSLT voor de transformatie is en XSL voor de opmaak.
Maar in de praktijk gebruik je ze bij elkaar en kun je daarmee alles maken.
Ik geloof dat XSLT voor de transformatie is en XSL voor de opmaak.
Maar in de praktijk gebruik je ze bij elkaar en kun je daarmee alles maken.
Who is John Galt?
Je kan ook naar HTML of plain-text transformeren. Zie dit topic bijvoorbeeld:
[topic=489789/1/25]
Als je echt hele andere dingen wilt, is het wellicht verstandig om eerst te transformeren naar een XML representatie van dit formaat en in een andere taal dit om te zetten naar hetgene wat je wilde (PDF, MS Word, LaTeX bijvoorbeeld).
[topic=489789/1/25]
Als je echt hele andere dingen wilt, is het wellicht verstandig om eerst te transformeren naar een XML representatie van dit formaat en in een andere taal dit om te zetten naar hetgene wat je wilde (PDF, MS Word, LaTeX bijvoorbeeld).
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Dit klopt dus trouwens gewoon niet, maar het is uiteraard wel het hoofddoel.XSLT, which is a language for transforming XML documents into other XML documents
Zie ook hier:
http://www.w3.org/TR/xslt#output
Een text-output method levert trouwens nog wel steeds iets wat uit nodes bestaat, maar dat is dus zeker geen XML.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Dit klopt wel degenlijk!Op donderdag 09 mei 2002 07:07 schreef mbravenboer het volgende:
[..]
Dit klopt dus trouwens gewoon niet, maar het is uiteraard wel het hoofddoel.
Zie ook hier:
http://www.w3.org/TR/xslt#output
Een text-output method levert trouwens nog wel steeds iets wat uit nodes bestaat, maar dat is dus zeker geen XML.
XSL is gemaakt voor transformatie van XML naar XML. HEt ene systeem heeft minder (of in dir geval meer info!) nodig dan de ander.
In dus geval is de toegevoegde waarde van de transformatie van de XML de opmaak tags. Ook css kan je op deze manier er in verwerken.
Vind jij dit dan XMLrolandketel: Dit klopt wel degenlijk!
code:
1
2
3
| werknemer=Jaap bedrijf=Philips afdeling=Customer |
Dat zal ik zeker niet ontkennen.... Tuurlijk is XSLT daarvoor ontworpenXSL is gemaakt voor transformatie van XML naar XML.
In dus geval is de toegevoegde waarde van de transformatie van de XML de opmaak tags.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ok, maar voor de goede orde moet ik je toch even corrigeren hier. Want je kan niet naar html converteren, maar slechts naar xhtml.mbravenboer:
Je kan ook naar HTML of plain-text transformeren. Zie dit topic bijvoorbeeld:
Overigens zal die quote van het W3c xhtml wel beschouwen als óók een vorm van XML
Je kunt naar alles converteren, dus ook gewone 'ouwe' html.
Mijn plekkie + Sympathisant van 'GoT voor Behoud der Nederlandsche Taal' [GvBdNT]
Read the fine recommendationddc: Ok, maar voor de goede orde moet ik je toch even corrigeren hier. Want je kan niet naar html converteren, maar slechts naar xhtml.
Ik moet onwillekeurig denken aan een stukje wat ik las in het laatste JDJ, maar ik heb geen zin om het over tikken
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Als je tags niet afsluit in je XSL krijg je volgens mij wel problemen anders. Althans ik wel
het kan wel als je alle HTML <'s vervangt door < (en de output method goed insteld), maar handig is anders
Verwijderd
Ja hehe: Je XSL moet natuurlijk wel wellformed xml zijn. XSL is een xml-taal. Maar er kan naar elk willekeurig formaat getransformeerd worden, als jij bijvoorbeeld je output op 'html' zet en dit staat er in je xsl:Op donderdag 09 mei 2002 12:43 schreef ddc het volgende:
Als je tags niet afsluit in je XSL krijg je volgens mij wel problemen anders. Althans ik wel
[img]"plaatje.gif"/[/img] (let op de sluitende slash)
dan wordt dat in de output gewoon [img]"plaatje.gif"[/img] (zonder sluitende slash)
als je de output op 'xml' zet blijft de sluitende slash staan
Ik wil niemand persoonlijk beledigen maar moet wel even zeggen dat ik toch wel wat verbaasd ben door de reacties hier. Mensen die hier vragen stellen verwachten correcte antwoorden en schenken jou hun vertrouwen. Ze kunnen niet controleren of je het juist hebt. Zeker als je mensen gaat corrigeren, zou ik toch echt even zorgen dat je weet waarover je hebt en je bronnen raadpleegt voor je zulk commentaar levert.
Toch maar even uit JDJ overgetikt:
"I've been lurking around some of the Java mailing lists and am continually amused at some of the postings. In fact, let me scrub that, I'm scared to death of some of the post. [...] The question wasn't the issue; it was the array of answers that tickled me at first until I read one that scared the life out of me.".
Iedereen kan zich vergissen, maar als je commentaar levert op mij wat betreft XSLT zou ik me toch eerst even orienteren... (waarbij ik vast arrogant over kom).
Toch maar even uit JDJ overgetikt:
"I've been lurking around some of the Java mailing lists and am continually amused at some of the postings. In fact, let me scrub that, I'm scared to death of some of the post. [...] The question wasn't the issue; it was the array of answers that tickled me at first until I read one that scared the life out of me.".
Iedereen kan zich vergissen, maar als je commentaar levert op mij wat betreft XSLT zou ik me toch eerst even orienteren... (waarbij ik vast arrogant over kom).
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Het soort document van de output kun je instellen door (weet niet precies zo):
waarbij HTML dus vervangen kan worden door een andere output
code:
1
2
| <?xml version="1.0" encoding="...."?> <?xml output="HTML"?> |
waarbij HTML dus vervangen kan worden door een andere output
mbravenboer: Zie ook hier: http://www.w3.org/TR/xslt#output
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
Couldn't agree more...Op donderdag 09 mei 2002 13:32 schreef mbravenboer het volgende:
Ik wil niemand persoonlijk beledigen maar moet wel even zeggen dat ik toch wel wat verbaasd ben door de reacties hier. Mensen die hier vragen stellen verwachten correcte antwoorden en schenken jou hun vertrouwen. Ze kunnen niet controleren of je het juist hebt. Zeker als je mensen gaat corrigeren, zou ik toch echt even zorgen dat je weet waarover je hebt en je bronnen raadpleegt voor je zulk commentaar levert.
I second that.mbravenboer:
Iedereen kan zich vergissen, maar als je commentaar levert op mij wat betreft XSLT zou ik me toch eerst even orienteren...
<non sliming>
* drm is verbaasd over het feit dat de mbravenboer zo snel vergeten is
</non sliming>
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Omdat dit uiteraard over mij gaat; sorrymbravenboer:
Ik wil niemand persoonlijk beledigen maar moet wel even zeggen dat ik toch wel wat verbaasd ben door de reacties hier. Mensen die hier vragen stellen verwachten correcte antwoorden en schenken jou hun vertrouwen. Ze kunnen niet controleren of je het juist hebt. Zeker als je mensen gaat corrigeren, zou ik toch echt even zorgen dat je weet waarover je hebt en je bronnen raadpleegt voor je zulk commentaar levert.
Iedereen kan zich vergissen, maar als je commentaar levert op mij wat betreft XSLT zou ik me toch eerst even orienteren... (waarbij ik vast arrogant over kom).
Maar als ik in een XSL tussen de xhtml-output
code:
1
| [img]"bla.gif"[/img] |
zet, dan vind de XML parser dat niet zo leuk. Als ik hem dan afsluit met / vind ie het al wat beter, hoe zit dat dan
Zoals al eerder vermeld. de XSL moet wel well-formed zijn. De output die het genereert hoeft dat niet te zijn. And that's the way it should be, ik vind dat een programma er van uit maggaan dat een (xml)developer een well-formed stylesheet kan bakken. Dit in tegenstelling tot html waar ook de 'huis tuin en keuken' internet gebruiker een pagina in elkaar moet kunnen prakken (was de gedachte).Op donderdag 09 mei 2002 17:49 schreef ddc het volgende:
[..]
Omdat dit uiteraard over mij gaat; sorry
Maar als ik in een XSL tussen de xhtml-output
code:
1 [img]"bla.gif"[/img]
zet, dan vind de XML parser dat niet zo leuk. Als ik hem dan afsluit met / vind ie het al wat beter, hoe zit dat dan
Hmz, misschien dat hier de html wordt "geschreven" via XSL-functies, dan zou het wel kunnen, nooit geprobeerd.Orphix:
Zoals al eerder vermeld. de XSL moet wel well-formed zijn. De output die het genereert hoeft dat niet te zijn. And that's the way it should be, ik vind dat een programma er van uit maggaan dat een (xml)developer een well-formed stylesheet kan bakken. Dit in tegenstelling tot html waar ook de 'huis tuin en keuken' internet gebruiker een pagina in elkaar moet kunnen prakken (was de gedachte).
Maar als je xhtml rechtstreeks schrijft als xhtml in de xsl, kan het iig geen html zijn.
Nouja ... xhtml is wel html, maar html is geen xhtml. Ik zou geen enkel praktisch nut kunnen verzinnen om percee non-well-formed html uit te willen spugenOp donderdag 09 mei 2002 18:00 schreef ddc het volgende:
Hmz, misschien dat hier de html wordt "geschreven" via XSL-functies, dan zou het wel kunnen, nooit geprobeerd.
Maar als je xhtml rechtstreeks schrijft als xhtml in de xsl, kan het iig geen html zijn.
Oudere applicaties (browsers bijv) die alleen met non-well-formed HTML uit de voeten kunnen bijvoorbeeld?Orphix: Nouja ... xhtml is wel html, maar html is geen xhtml. Ik zou geen enkel praktisch nut kunnen verzinnen om percee non-well-formed html uit te willen spugen
Voor de goede orde (ik zie dit topic nu via een andere link, vandaar wat laat
Well-formed XML
Een document is well-formed XML als het syntactisch aan de XML standaard voldoet. Dus we sluiten iedere tag netjes af, we quoten attributes, en meer van dat soort ongein.
XML applicaties
Er zijn verschillende standaarden welke gebruik maken van de XML syntax. Voorbeelden van XML applicaties zijn XML, XHTML, XSL, SVG en PostingML.
Valid XHTML/XSL/SVG/etc
Een document is valid XHTML wanneer het well-formed XML is en inhoudelijk voldoet aan de eisen die de XHTML standaard stelt (zelfde zin kun je maken voor ander XML applicaties). Deze eisen kunnen beschreven worden in een schema taal als DTD, XML Schema, of Relax NG.
In je XML document kun je deze eisen linken zodat een gebruiker het document kan valideren als dit nodig is.
XML --[XSL]--> XML
XSL is zoals gezegd een XML applicatie. Een XSL document moet dus well-formed XML zijn en daarnaast nog aan inhoudelijke regels mbt XSL voldoen.
XSL is een transformatie taal om een XML bron te transformeren naar een ander formaat, waarvan XML de meest voor de hand liggende is, maar zeker niet de enige.
XML --[XSL]--> XHTML
Een XSL document kan de transformatie van een XML bron naar een XHTML document beschrijven. Dit is dus gewoon een transformatie van XML naar XML aangezien XHTML een XML applicatie is.
XML --[XSL]--> HTML
Wanneer je een XML bron transformeert naar HTML kun je er nooit zeker van zijn dat het resultaat ook well-formed XML is (dit kan toevallig het geval zijn).
Het XSL document zelf moet nog steeds well-formed XML zijn, maar de output hoeft dit niet te zijn. Zelfde geldt voor een transformatie naar een plain text formaat.
Enkele dingen nogal kort door de bocht, maar hoofdpunten waar het om draait staan er
Zoals?Op vrijdag 10 mei 2002 23:35 schreef tomato het volgende:
Oudere applicaties (browsers bijv) die alleen met non-well-formed HTML uit de voeten kunnen bijvoorbeeld?
Bij <4.0 versie hou ik het voor gezien. Maar nu moet ik het zeggen dat ik al tijden geen 4.0 meer heb gebruikt. Met >=5.0 heb ik nooit problemen gehad.
Ik denk bv dat weinig browsers moeite hebben met bv een <br/> (de slash). En het is altijd een goede gewoonte geweest om well-formed HTML te schrijven, ook al was het niet verplicht, dus ik neem aan dat de software fabrikanten daar rekening mee hielden.
Legio. Denk daarbij niet alleen aan IE of Netscape, maar ook aan bijvoorbeeld een eigengeschreven HTML parsertje die uitgaat van een '<br>' tag en de slash niet slikt in een '<br/>'.Orphix: Zoals?
Je hebt het over Internet Explorer neem ik aanBij <4.0 versie hou ik het voor gezien. Maar nu moet ik het zeggen dat ik al tijden geen 4.0 meer heb gebruikt. Met >=5.0 heb ik nooit problemen gehad.
Daar vergis je je misschien lelijk in danIk denk bv dat weinig browsers moeite hebben met bv een <br/> (de slash).
Sommige browsers pikken bijvoorbeeld geen slash direct na de 'br', daarom wordt er meestal '<br />' (met spatie) gebruikt om nog enigzins backwards compatible te kunnen zijn.
Maar daar ging het nou net niet om, '<br/>' is geen well-formed HTML (whatever dat ook mag zijnEn het is altijd een goede gewoonte geweest om well-formed HTML te schrijven, ook al was het niet verplicht, dus ik neem aan dat de software fabrikanten daar rekening mee hielden.
In de oude HTML standaarden wordt juist over '<br>' gepraat, dus misschien klopt je opmerking (fabrikanten hielden rekening met standaarden), maar dan kan het dus heel goed zo zijn dat ze niet weten om te gaan met het nieuwe XHTML
...en dan wil ik er nog even aan toevoegen dat de HTML output niet per definitie voor browsers of voor het web gegenereerd wordt.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
Dat kan wel zijn, maar veel XML parsers, zoals de MSXML parser, transformeren van XMLDOM naar XMLDOM, dus de output van een XSLT transformatie moet wellformed zijn, anders krijg je errors in de resultDOM. Alleen XHtml geeft goede resultaten.Op donderdag 09 mei 2002 12:32 schreef mbravenboer het volgende:
[..]
Read the fine recommendation. html is gewoon een output-method van XSLT en daar komt dus klassieke html uit, wat geen well-formed XML is...
Genereer je met je XSL template geen well-formed XML, dan lukt de transformatie niet in bv de MS XML parser. (dit was althans het geval t/m versie 3.x). Andere parsers transformeren naar een outputstream, waardoor je wel alle mogelijke handel kunt genereren zonder je te bekommeren om de correctheid van de output mbt XML syntax.
Ik heb er een tijdje niet naar gekeken, dus ik weet niet of de MS XML parser nog steeds puur naar een XML DOM kan transformeren. Wellicht dat een ander daar een licht op kan werpen
Hum vreemd: kan je niet naar een stream transformeren? Dat is dan best vervelend.Otis: Dat kan wel zijn, maar veel XML parsers, zoals de MSXML parser, transformeren van XMLDOM naar XMLDOM, dus de output van een XSLT transformatie moet wellformed zijn, anders krijg je errors in de resultDOM. Alleen XHtml geeft goede resultaten.
In de standaard staat natuurlijk precies beschreven wat de html output method moet doen en in principe kan de library dan dus gewoon niet compatible zijn
In Java kan je via TRaX, de XSL Transformatie bib, transformeren van alles naar alles zo'n beetje... Van een DOM naar een DOM, van een JDOM naar een JDOM van een Reader naar een Writer enzovoorts en dat ook nog allemaal gekruist. Dit is allemaal geabstraheerd door de Source en Result interfaces.
Hetzelfde probleem geldt overigens natuurlijk ook voor de text output method...
Ik heb eigenlijk geen idee wat Xalan hier doet als je als Result een DOM neemt.Genereer je met je XSL template geen well-formed XML, dan lukt de transformatie niet in bv de MS XML parser.
Ik heb btw ook niet gezegd dat ik het fraai vind
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
Bij mijn weten niet. Je kunt wel de outputted stream opvangen maar die komt uit een destination DOM, dus dat is lood om oud ijzer. Wellicht dat de .NET services meer toevoegen, ik heb daar nog niet naar gekeken.Op zaterdag 11 mei 2002 16:32 schreef mbravenboer het volgende:
[..]
Hum vreemd: kan je niet naar een stream transformeren? Dat is dan best vervelend.
[edit]
Net even gekeken en de System.XML.Xsl.XslTransform class kan transformeren naar XmlReader, TextWriter en stream. Dus ik heb goede hoop dat het nu wel goed is
Uit de url:http://www.w3.org/TR/xslt#outputIn de standaard staat natuurlijk precies beschreven wat de html output method moet doen en in principe kan de library dan dus gewoon niet compatible zijnIk neem aan dat dit ondertussen wel aangepast is en dat je ook naar andere resultaten (streams of result-trees dus) kunt transformeren?
"The xsl:output element allows stylesheet authors to specify how they wish the result tree to be output. If an XSLT processor outputs the result tree, it should do so as specified by the xsl:output element; however, it is not required to do so."
Ze hoeven dus niet. Op zich kan ik het me wel voorstellen, want je praat over XML, en het converteren van XML mbv een XSL naar HTML is niet meer dan een truukje, misbruiken maken van de geboden functionaliteit
Ok, das mooiOtis: Net even gekeken en de System.XML.Xsl.XslTransform class kan transformeren naar XmlReader, TextWriter en stream. Dus ik heb goede hoop dat het nu wel goed is
Ze bedoelen hiermee volgens mij dat de output-method toegepast moet worden om eventueel iets met de result-tree te doen. Dat is dus kennelijk niet verplicht (wat op zich wel vreemd is).it is not required to do so.
Het probleem bij een DOM -> DOM transformatie is (was) echter in dit geval niet zozeer de manipulatie van de result-tree, maar het simpele feit dat een result-tree niet altijd in een DOM 'past'...
De DOM is in principe een "XML document entity" denk ik. Ik kon echter niet vinden wat er moet gebeuren als de result tree niet well-formed is. Xalan accepteert bijvoorbeeld gewoon niet well-formed result-trees en maakt daar dus ook niet well-formed XML vanThe xml output method outputs the result tree as a well-formed XML external general parsed entity. If the root node of the result tree has a single element node child and no text node children, then the entity should also be a well-formed XML document entity.
Misbruik van de functionaliteit gaat me wat veren het converteren van XML mbv een XSL naar HTML is niet meer dan een truukje, misbruiken maken van de geboden functionaliteit.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Pagina: 1