Tutorial poem publishers inc goes to web
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Tutorial: Poem Publishers, Inc. goes to Web PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

Tutorial: Poem Publishers, Inc. goes to Web. Käytännön kokemuksia verkkojulkaisemisesta Anne Honkaranta, Virpi Lyytikäinen, Pasi Tiitinen Jyväskylän yliopisto, Digitaalinen media inSGML-projekti. English version. Experiences of using XSLT and DOM

Download Presentation

Tutorial: Poem Publishers, Inc. goes to Web

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tutorial poem publishers inc goes to web

Tutorial: Poem Publishers, Inc. goes to Web

Käytännön kokemuksia verkkojulkaisemisesta

Anne Honkaranta, Virpi Lyytikäinen, Pasi Tiitinen Jyväskylän yliopisto, Digitaalinen media

inSGML-projekti

Jyväskylän yliopisto/AHo, VLy, PTi


English version

English version

  • Experiences of using XSLT and DOM

    http://insgml.it.jyu.fi/www/Runodemo/Experiences.html

Jyväskylän yliopisto/AHo, VLy, PTi


Sis lt

Sisältö

  • Runokustannus Oy

    • Runot

    • Julkaisuympäristö

  • Muunnokset

    • Muunnostekniikat

    • Muunnokset palvelin/asiakas -ympäristössä

    • Muunnokset Runokustannus Oy:ssä

  • Kohdattuja haasteita

  • Mitä opittiin

Jyväskylän yliopisto/AHo, VLy, PTi


Runokustannus oy

Runokustannus Oy

  • Kuvitteellinen yritys

    • demonstroi muunnosten tarpeellisuutta, muunnostekniikoita, ja työkalujen käyttöä

    • yksinkertaiset dokumentit

  • Kustantaa runoja WWW:ssä

  • Runot kirjoitetetaan XML-muodossa runo.dtd:n mukaisesti

  • Runoista voidaan muodostaa kokoelmia

Jyväskylän yliopisto/AHo, VLy, PTi


Yleiskuva julkaisuprosessista

Yleiskuva julkaisuprosessista

  • Runojen lukija:

  • WWW-selain

  • CSS-tyylisivut

  • XHTML/HTML DTD

  • Sisällön tuottaja

  • XML editori

  • Runo DTD

WWW -palvelin

dokumenttien muunnokset

Jyväskylän yliopisto/AHo, VLy, PTi


Runo dtd

Runo.dtd

Jyväskylän yliopisto/AHo, VLy, PTi


Julkaisuymp rist

Julkaisuympäristö

  • Microsoft IIS server v. 5.0

  • Jscript, VBScript

  • ASP 3.0

  • DOM II

  • Internet Explorer 5.5 tai uudempi

  • CSS Level 2

  • MSXML 3.0

Jyväskylän yliopisto/AHo, VLy, PTi


Muunnokset

Muunnokset

  • Muunnos voi kohdistua dokumentin

    • formaattiin

    • rakenteeseen / tietomääritykseen (skeemaan)

    • sisältöön

    • tulostuvaan osaan (suodatetaan osa pois)

    • kaikiin yllämainittuihin

  • Muunnos  conversion, filtering, transformation

Jyväskylän yliopisto/AHo, VLy, PTi


Miksi muunnoksia tarvitaan

Miksi muunnoksia tarvitaan?

  • Kirjoittajat/sisällön tuottajat tarvitsevat sisältöorientoituneen DTD:n

  • Erilaiset päätelaitteet yleistyvät

  • Dokumentteja hallinnoitaessa tarvitaan optimaalisin prosessoitava muoto dokumentista

    --> kolmivaiheinen julkaisuprosessi

    kirjoittaminen -- prosessointi -- tulostus

Jyväskylän yliopisto/AHo, VLy, PTi


Muunnostekniikoita

Tapahtumapohjaiset muunnostekniikat

Puuperustaiset muunnotekniikat

Esimerk-kejä muunnos-kielistä

  • SAX-Simple API for XML

  • Omnimark

  • DOM (document object model) — API

  • Balise

  • XSLT language

Edut /

haitat

  • nopea, käyttää laskentaresursseja tehokkaasti

  • tulosdokumentin rakennetta (skeemaa) ei voi kovin hyvin kontrolloida

  • jäsennyspuun laatiminen vaatii muistitilaa

  • tulosdokumentin rakennetta voi kontrolloida hyvin

  • sopii parhaiten monimutkaisiin muunnoksiin

Muunnostekniikoita

Jyväskylän yliopisto/AHo, VLy, PTi


Asp ja xml

ASP ja XML

  • IIS 5.0 palvelimessa ”XML-valmius”

  • ASP-”varuskomponentteja” (esim.)

    • FileSystemObject, File- Folder-object

    • Response ja Request object

    • DOM (MSXML2.DOMDocument)

    • ParseError ja Error object

    • Jscript ja Vbscript (Debugger)

Jyväskylän yliopisto/AHo, VLy, PTi


Tutorial poem publishers inc goes to web

DOM

  • Dokumenttipuun solmut ”ajatellaan” olioiksi (object) joilla on rajapinta (Interface)

  • Rajapintaan (Interface) liittyy ominaisuuksia ja metodeja

  • Interface vastaa solmua, metodit määrittävät toiminnot, joita voidaan suorittaa

  • Interfaceja (esim.):

    • Document Interface (=dokumenttiolio)

    • Node Interface (=kaikki solmut)

    • Element Interface

    • Attr Interface (Dokumentin attribuutit)

Jyväskylän yliopisto/AHo, VLy, PTi


Dom objektimalli dokumentti interface

Element

Attribute

Attribute

DOM-objektimalli -dokumentti-interface

DOCUMENT

Document-

Type

Comment

Processing-

Instruction

Huom! vain 1 elementti-

dokumentin juuri

Jyväskylän yliopisto/AHo, VLy, PTi


Dom objektimalli elementinterface

Element

Attribute

Attribute

Entity-

Reference

Element

Attribute

Attribute

CDATASection

Text

Comment

Processing-

Instruction

Dom-objektimalli - elementInterface

Jyväskylän yliopisto/AHo, VLy, PTi


Dom document interface

aseta dok.muuttuja.attribuutti Document.Element

var rootEl=myDoc.DocumentElement;

DOM; Document Interface

  • Attribuutit: doctype, implementation ja documentElement

  • Metodeja, mm.

    • createElement

    • createDocumentFragment

    • createTextNode, createComment

    • createCDATASection, createAttribute

    • getElementsByTagName

Jyväskylän yliopisto/AHo, VLy, PTi


J sennyspuu

Jäsennyspuu

Alla on runo.dtd -ELM-rakennekaavio

Huomaa: dtd-kuvaus kertoo mitä elementtejä runossa

voi tai saa olla

Jyväskylän yliopisto/AHo, VLy, PTi


J sennyspuu1

RUNO

TEKIJA

SAKEISTO

OTSIKKO

NIMI

Tasapää

RIVI

RIVI

ETUNIMI

SUKUNIMI

Älä kasva enempää

Aulis

Ankka

Tillin tallin tasapää

Jäsennyspuu

Jäsentäjän laatima jäsennyspuu kuvaa yksittäisen (runo-dokumentti-instanssin) rakenteen. Erään runo.xml-dokumentin jäsennyspuun kaaviokuva näyttää tältä:

Jyväskylän yliopisto/AHo, VLy, PTi


Muunnokset palvelin asiakas ymp rist ss xslt dom

Muunnokset palvelin/asiakas –ympäristössä (XSLT/DOM)

  • Vaihtoehtoja:

    • käytetään PI:tä (Processing Instruction) XML-lähdedokumentissa (a)

      (PI voidaan kirjoittaa lähdedokumenttiin WWW-palvelimella)

    • DOM-rajapintaa ja DOM-objekteja käytetään XML-lähdedokumentin ja XSLT:n lataamiseen (p/a)

    • käytetään DOM-rajapintaa + skriptikieliä (Vbscript, Jscript) tai Javaa

Jyväskylän yliopisto/AHo, VLy, PTi


Muunnosketju esimerkki

Lähde

XML-

dok.

Tulos-

dok. +

linkki

CSS:ään

XSLT

dok.

CSS

dok.

Palvelin/Asiakas

Asiakas

Muunnosketju (esimerkki)

Tulos

HTML/

XHTML-dok.

rendered CSS-muotoiltuna

Jyväskylän yliopisto/AHo, VLy, PTi


Esimerkki pi xml l hdedokumentissa

<?xml version="1.0"?>

<?xml-stylesheet

type="text/xsl"

href=”poem_html.xsl" ?>

<!DOCTYPE POEM

SYSTEM "Poem1.dtd">

...

<xsl:stylesheet.....

<html>

<head><meta>

<LINK rel="stylesheet”

type="text/css”

href="runo_htm.css" >

</LINK>

Esimerkki: PI XML-lähdedokumentissa

Jyväskylän yliopisto/AHo, VLy, PTi


Esimerkki dom objektit xslt

<HTML><BODY><HEAD></HEAD>

<SCRIPT LANGUAGE=VBSCRIPT>

Dim objDocument, objXSL, strXML

Set objDoc = CreateObject("MSXML2.DOMDocument")

Set objXSL = CreateObject ("MSXML2.DOMDocument")

objDoc.async=false

objXSL.async=false

objDoc.Load "../Runot/Pinkku1.xml"

objXSL.Load "runo1_htmlksi2.xsl"

strXML=objDoc.transformNode(objXSL)

Document.Write strXML

</SCRIPT>

</BODY></HTML>

Esimerkki: DOM-objektit+XSLT

Jyväskylän yliopisto/AHo, VLy, PTi


Esimerkki vbscript dom

<HTML><HEAD><TITLE>Inspect nodes of poem</TITLE></HEAD>

<BODY>

<SCRIPT LANGUAGE="VBSCRIPT" CODEPAGE="iso-8859-1" LCID="1033">

Dim root, xmlDoc, child

Set xmlDoc = CreateObject("Msxml2.DOMDocument")

xmlDoc.async = False

xmlDoc.load("Runot/Pinkku1.xml")

'Walk from the document to each of its child nodes:

For Each child In xmlDoc.childNodes

document.write ”type of node:" & child.nodeType & " | "

document.write ”name of node:" & child.nodeName & " | "

document.write ”content of node:" & child.text & "<BR>"

Next

</SCRIPT></BODY></HTML>

Esimerkki: VBscript+DOM

Jyväskylän yliopisto/AHo, VLy, PTi


Runokustannus oy ss testatut muunnostyypit

Runokustannus Oy:ssä testatut muunnostyypit

  • XML-to-XML

  • XML-to-HTML

  • XML-to-XHTML

Jyväskylän yliopisto/AHo, VLy, PTi


Runokustannus oy n muunnostarpeet

Runokustannus Oy:n muunnostarpeet

  • Useamman lähdedokumentin yhdistäminen yhdeksi tulosdokumentiksi (runo+ylä- tai alatunniste, runolista, metatiedot runoista)

  • Useamman lähdedokumentin yhdistäminen yhdeksi (runokokoelma)

  • XSLT-muunnosdokumenttien yhdistäminen (runo+alatunniste)

Jyväskylän yliopisto/AHo, VLy, PTi


Esimerkki xslt muunnossivujen yhdist minen

Esimerkki: XSLT-muunnossivujen yhdistäminen

<?xml version=”1.0” encoding=”iso-8859-1”?>

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"

xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns="http://www.w3.org/1999/REC-html401">

<xsl:import href="header.xsl"/>

<xsl:output method="html" encoding="ISO-8859-1" />

<?xml version=”1.0” encoding=”iso-8859-1”?>

!-- Filename: header.xsl -->

<xsl:stylesheet xmlns:xsl=

"http://www.w3.org/1999/XSL/Transform" version="1.0"

xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns="http://www.w3.org/1999/REC-html401">

<xsl:output method="html" encoding="ISO-8859-1" />

<xsl:template match="/" name="header">

Jyväskylän yliopisto/AHo, VLy, PTi


Apuohjelmia

Apuohjelmia

  • MSTools for validating XML and viewing XSLT output

  • MS Jscript/Vbscript Debugger

  • MSXSL command line tool

Jyväskylän yliopisto/AHo, VLy, PTi


Kohdattuja haasteita

Kohdattuja haasteita

  • Ongelmien syitä

    • jäsentimet ja niiden eri versiot

    • merkkien koodaus

    • kuvat ja linkit

    • ”liian paljon” työkaluja, kieliä ja ohjelmia

Jyväskylän yliopisto/AHo, VLy, PTi


Esimerkki merkkien koodaus ja j sennin

Esimerkki: Merkkien koodaus ja jäsennin

  • MSXML

TULOS-

Dok.

MSXML

3.0

LÄHDE-

Dok.

  • lähdedokumentin koodaus

  • saatettu käyttää merkki-entiteettejä

  • entiteetit muutetaan oikeiksi merkkikoodeiksi muunnoksessa

  • käyttää UTF-16:ta

  • tunnistaa tulosteen koodauksen PI:stä jos oikeaa load/save –metodiaon käytetty

  • muutoin tulostaa UTF-16:ta

  • jotain koodausta käytetty

  • sisältää koodaus-määrityksen

  • jompikumpi on ”väärä”

Jyväskylän yliopisto/AHo, VLy, PTi


Encoding msxml ja asp

Encoding, MSXML ja ASP

  • loadXML (UCS-2/UTF-16)

  • load

    • ->http-header

    • ->2-byte BOM ->UTF-16

    • ->4-byte BOM ->UTF-32

    • ->UTF-8 (paitsi jos on encoding attribuutti XML-deklaraatiossa)

  • ResponseXML - samat kuin Load:ssa

  • ResponseText ->UTF-8

  • ResponseStream->IStream

Jyväskylän yliopisto/AHo, VLy, PTi


Mahdollisuuksia

Mahdollisuuksia

  • Voit käyttää XSLT-tyylimäärityksiä komponentteina ja yhdistellä niitä

  • Tyylisivu voidaan nähdä uudelleen käytettävänä komponenttina palvelimella

  • Muunnoksia voi myös ketjuttaa

  • Muunnosten avulla voit säilyttää tietoa sisältöorientoituneessa muodossa ja tulostaa sen tarvittavia tyylimäärityksiä käyttäen

  • Ongelma: DTD:eiden, muunnoskomponenttien ja versioiden hallinta

Jyväskylän yliopisto/AHo, VLy, PTi


Mit opittiin

Mitä opittiin

  • Käytä samaa merkkikoodausta lähdedokumenteissa ja muunnossivuissa

  • Sisällön tuottajalle on hyvä tarjota sisältöorientoitunut DTD; muunnoksia tarvitaan joka tapauksessa!

  • Selaimet tukevat CSS:ää, XSLT:ä ja XML:ää vaihtelevasti

  • XML-pohjaisen julkaisuympäristön rakentamiseen on olemassa työkaluja: varaa aikaa mahdollisten ongelmien ratkaisemiseksi

  • Moninaiset taidot ovat tarpeen julkaisuympäristöä pystytettäessä, XML:n tunteminen ei riitä!

Jyväskylän yliopisto/AHo, VLy, PTi


Lis tietoa insgml projekti http haades it jyu fi insgml

Lisää tietoa: inSGML-projekti http://haades.it.jyu.fi/inSGML/

Jyväskylän yliopisto/AHo, VLy, PTi


  • Login