[xml/xslt] zowel data als 'grafische' elementen weergeven?

Pagina: 1
Acties:
  • 265 views sinds 30-01-2008
  • Reageer

  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
De topictitel is een beetje beperkt, maar ik bedoel het volgende:

Ik heb me de laatste tijd een beetje verdiept in de mogelijkheden van xml icm xslt enzo en ik ben tevens een php applicatie aan het bouwen waarbij het erg mooi zou zijn als we xml kunnen gebruiken, maar ik loop tegen het volgende op.

Ik maak bij mn websites en dergelijk vaak gebruik van een ontwerp dat ik in photoshop maak en dan 'omzet' naar HTML, en dat gaat eigenlijk altijd goed icm met php en een template engine. Nou wil ik het zelfde ook wel doen in xml/xslt maar ik krijg nergens echt een goed beeld van hoe ik nou bv gifjes/png/jpgs kan positioneren, of met roll-overs, of ik noem maar wat, kan doen in xml/xslt.
Om de data uit xml naar een tabel met kleurtjes te krijgen bv, daar zijn wel redelijk wat voorbeelden van, maar van wat ik hierboven beschreef kan ik niet zoveel vinden, helaas.. Ik wil namelijk straks met dezelfde data die ik uit mn db haal ook naar pdf en word kunnen (rtf bv), dus in principe mag het 'fancy html' gedeelte ook wel in XHTML en dat de data (waar ook wel graphics mee gemoeit gaan voor de presentatie) ge-encapsulated (?) wordt met 'echte' xml?

Ik ben nog best wel een newbie dus ik haal waarschijnlijk van alles door elkaar, maar zoals ik al zeg, ik kan weinig tutorials/howto's vinden op het net die specefiek hierover gaan, en het is handiger om wat uit je eigen praktijk te leren dan dingen te gaan uitzoeken die je niet echt nodig hebt ofzo..

Mijn vraag dus:
Kan iemand mij een goede voorbeeld/tut/howto site of links geven of weet iemand een goed boek over deze dingen, en wat denken jullie van de manier van werken op deze manier?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kan op basis van je XML en je XSLT een ander formaat als uitvoer genereren. Dit kan dus ook HTML zijn. Je kan dan verder in een soort semi html gaan werken:

vb:
code:
1
<h1><xsl:value-of select="@voornaam"/></h1>


En verder kan je door gebruik te maken van andere XSLT`s ook andere uitvoer genereren. Eventueel zou je nog een tussen formaat XML kunnen maken. Vanuit de db krijg je XML data aan, dit transformeer je naar een eigen visueel formaat:

code:
1
2
3
4
5
6
7
8
9
10
<hoofdstuk>Mooie sprookjes</hoofdstuk>

<plaatje>
        <url>/images/plaatje.gif</url>
        <align>center</align>
        <size>
              <x>100</x>
              <y>100</y>
        </size>
</plaatje>


En hier ga je later weer XSLT`s over plaatsen om HTML, txt, RTF te genereren.

[ Voor 104% gewijzigd door Alarmnummer op 03-03-2003 09:34 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik vermoed dat je een beetje teveel in de war gebracht wordt door het verschil tussen XML en de betekenis van een stukje XML. XSLT is een transformatie taal voor XML en heeft helemaal niets te maken met de betekenis van de XML die wordt getransformeerd. Je kan het dus gebruiken om alle XML standaarden en formaten te transformeren, ongeacht de betekenis van de XML.

Je probleem ligt dus eigenlijk helemaal niet bij XSLT: dat moet je gewoon gebruiken om bijvoorbeeld je data te transformeren naar een presentatie (XSL Formatting Objects, SVG of XHTML bijvoorbeeld). Hoe je je data presenteert in die presentatie (als je dat wilt met allemaal grafisch goodies) is niet relevant voor XSLT.

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


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

En ik raad je verder een goed boek aan, bv Professional XML. Het is een drama om als noob te beginnen met XML en je dan alleen tutorials van het internet tot je beschikking hebt. Overal staat wat en nergens krijg je de big picture. Ik heb dat boek een paar week geleden gekocht en toen heb ik een tijd niets anders gedaan dan oehh.. en aahh.. en later ben ik begonnen met lezen.

  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
Bedankt voor de tips.. Ik ben zelf nogal dol op o'reilly boeken dus ik reis zo even af naar utrecht om daar te kijken of ze daar niks hebben (of evt een andere publisher)...

maar mravenboer, wat ik nog niet helemaal snap, hoe 'include' ik nou een plaatje met bijbehorende size en positie in bv een xslt of xml gebeuren.. Want is het plaatje 'data' of is het 'opmaak' wat je bij je transformatie gaat toepassen..?

Ik heb iig php met sablotron draaien dus ik kan wel aan de slag, maar ik weet dus nog niet echt waar ik moet gaan beginnen :)

Als ik het goed begrijp zet XSLT jouw customized tags om naar 'tags' of statements die jouw presentatiemachine wel begrijpt?

Dus hij mapped of transformeerd naar pdf, of (x)html?
Begrijp ik dan goed dat je je plaatjes enzo allemaal moet neerzetten in je xml en niet in je xslt en dat je in je xslt alleen maar neerzet dat bv <plaatje xpos="5" ypos="5" width="10" height="20">gfx/test.gif</plaatje> omgezte wordt naar een [img]"gfx/test.gif"[/img] met bv een div die eromheen staat om hem te positioneren?

tnx so far!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik geloof dat jij je plaatje wilt opnemen in je XSLT (of in je XML). Het zou een optie zijn, maar wel een lelijke:

<plaatje>
aaaa0787d66e8e6a8a8999e0000c8882717
aaaa0787d66e8e6a8a8999e0000c8882717
aaaa0787d66e8e6a8a8999e0000c8882717
aaaa0787d66e8e6a8a8999e0000c8882717
...
</plaatje>

Je kan veel beter een link naar dat plaatje opnemen, en pas verder op gaan besluiten of je het wel of niet erin op gaat nemen. Het is bv voor HTML (een mogelijk eindpunt) onmogelijk om een plaatje op die manier er in op te nemen. En verder begint je XML bestand onhandelbaar groot te worden (alleen handig als je hem genereerd ofzo).

Je kan het verder testen met bv Mozilla of ie6. Deze kunnen zelf XSLT op XML toepassen om het te visualiseren. Erg handig om mee te testen.

[ Voor 12% gewijzigd door Alarmnummer op 03-03-2003 10:34 ]


  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
licht offtopic, maar er bestaan geen 'dreamweaver' achtige pakketten waar je je xslt en xml grafisch kunt bouwen he...
Dat is wel handig als je bv je plaatjes moet positioneren enzo...
:)

nb.. ik ben off om een boek te zoeken :)

[ Voor 14% gewijzigd door djazete op 03-03-2003 10:43 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
djazete: maar mravenboer, wat ik nog niet helemaal snap, hoe 'include' ik nou een plaatje met bijbehorende size en positie in bv een xslt of xml gebeuren.. Want is het plaatje 'data' of is het 'opmaak' wat je bij je transformatie gaat toepassen..?
Dat hangt af van de taal waarin beschrijft hoe je de zaak gepresenteerd wilt hebben. In XHTML zal je normaal gesproken verwijzen naar een afbeelding en je kan er dus voor zorgen dat jouw XSL Transformatie zo'n verwijzing oplevert.

Als je de echte data van de afbeelding in het XML document op wilt nemen moet je bekijken hoe je presentatie taal dat ondersteunt. Je moet dan dus zorgen dat je op die manier je data opneemt.

Je zou naast raster afbeeldingen ook nog kunnen denken (ik zeg niet dat je het moet gebruiken ;) ) aan SVG. Je kan SVG afbeeldingen in XHTML opnemen en SVG is uiteraard weer gewoon XML.
Als ik het goed begrijp zet XSLT jouw customized tags om naar 'tags' of statements die jouw presentatiemachine wel begrijpt?
Jouw XSL Transformatie kan dat doen ja. XSLT richt zich hier echter niet specifiek op: het kan alle XML naar alle XML transformeren. Je zou dus bijvoorbeeld ook een transformatie de andere kant op kunnen doen: van presentatie naar data.
Dus hij mapped of transformeerd naar pdf, of (x)html?
PDF is wat lastig omdat dit geen XML formaat is, maar je kan wel transformeren naar XSL Formatting Objects. Dit kan je met een XSL-FO processor (zoals FOP van Apache) weer omzetten naar PDF.
Begrijp ik dan goed dat je je plaatjes ....
Zo zou je het wel kunnen zien ja :) .

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


  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
hm ik begin het te begrijpen.. Nu nog uitzoeken wat het slimst is, xhtml, of xml --> html of xml data encapsulen (?) in xhtml

iig kmoet mn trein halen naar de boekenwinkel :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Het is bv voor HTML (een mogelijk eindpunt) onmogelijk om een plaatje op die manier er in op te nemen.
Ik ben het volledig eens met je stelling dat het op deze manier opnemen van afbeeldingen vies is, maar dit is niet helemaal juist. Je kan de data opnemen met het data URL scheme. In img lijkt dit nog wat ad-hoc, maar nu er met XHTML 2.0 alleen nog maar een object is, is het eigenlijk best logisch dat dit mogelijk is (Arien had het er pas over op Javahova)

http://www.ietf.org/rfc/rfc2397.txt
Je kan het verder testen met bv Mozilla of ie6. Deze kunnen zelf XSLT op XML toepassen om het te visualiseren. Erg handig om mee te testen.
Zelf gebruik ik liever een processor die ik op de command line kan aanroepen. Er is dan wat minder risico op browser specifieke bugs of 'hulp'. XT, Xalan en Saxon (voor XSLT 2.0) kan je beide prachtig vanaf de command line aanroepen.

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


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik ben het met je eens dat het idd geen geweldige oplossing is (browser gebruiken). Maar het werkt wel en al te serieus ben ik ook niet met XSLT bezig. Fouten eruit halen is daarmee wel een enorme drama.

  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
en omzetten mbv php en sablotron..?
Want daarmee ga ik het uiteindelijk gebruiken....

Ik heb iig XML in a nutshell van o'reilly gehaald... Staat wel veel in.. :o

Ik ga wel gewoon aan de slag.. kijken of het me lukt..
Ik weet alleen niet wat nou het handigst is...
Als ik met een php template engine werk, dan staat de opmaak meestal vast en vul ik alleen bv een table met waardes of iets dergelijks en dan maak ik gewoon 1 content div ofzo, maar hoe pak je zoiets aan met xml en xslt..?
ook 2 verschillende xml bestanden die je samen met xslt tranformeert naar 1 xhtml bestand ofzo?

Trouwens, hoe is de xhtml ondersteuning van oudere netscape en ie browsers..?
want anders is het beter om van xml naar html4.01 te gaan

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Voor een discussie over verschillen tussen XSLT en template engine aanpak:
[rml][ php] Template engine vs. XML + XSLT[/rml]

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


  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
Mja, die discussie heb ik gelezen, maar ik kom nog niet helemaal uit het 'hoe' aspect, maar dat zal wel een kwestie zijn van lezen en doen.. :o

Heb jij, of een ander, toevallig geen handige link voor dit soort dingen (plaatjes in xml positioneren etc)?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Plaatjes positioneren heeft alleen maar met je presentatie taal te maken en niets met XML of XSLT. Als je een bepaald iets wilt bereiken in je presentatie hoef je alleen maar te kijken hoe je dit in je presentatie taal voor elkaar krijgt (bijvoorbeeld XHTML).

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


  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
hm dan snap ik het hele principe toch nog niet helemaal misschien... Opzich niet gek natuurlijk maar toch :)
Maar als je je xml data om wilt zetten naar een presentatie taal als xhtml, moet je dan je eigen xslt sheet maken of zijn er bestaande waaraan je je aan kunt houden? En, wat doe je met die plaatjes als je er dmv xslt FO een pdf van wilt bakken, of een latex file..? Kan je het dan negeren ofzo?
Ik begin steeds meer het idee te krijgen dat je met XSLT je eigen tags omzet naar bv. een (in mijn geval) presentatie taal die meer algemeen is en begrepen wordt door browsers, bv. html of xhtml...
Klopt dat een beetje..?

Verwijderd

Waarschijnlijk een enigzins raar antwoord, maar misschien moet je eens kijken naar de code die de (open source) applicatie 'PMTool gebruikt voor het genereren van rapporten :)

Leuk stukje code met PHP, MySQL, XML & XSL... en in in ieder geval een voorbeeld ook een afbeelding in de factuur.

Dit is vast en zeker uit/om te bouwen naar jouw wens :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik zou er gewoon eens mee aan de slag gaan. Je kan er eerst uren over na gaan denken wat het nu precies doet, maar misschien ben je daar sneller achter als je even wat leuke oefeningen doet. Ga dan niet gelijk voor de lastige zaken, maar houdt het gewoon basic.

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


  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020
Glorfindel: tnx :) ik zal eens kijken
mravenboer: daar zit wat in ja... Ik ben nu net bezig in het xslt hoofdstukje van mn boek, daarna ga ik denk ik daad bij woord voegen ja..
Scheelt een boel 'gespeculeer'
tnx iig!
Pagina: 1