Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Digital Documents Gisle Hannemyr Autumn 2002 Introducing XML, CSS, XSL eXtensible Markup Language Cascading Style Sheets XML Style Language.

Liknende presentasjoner


Presentasjon om: "Digital Documents Gisle Hannemyr Autumn 2002 Introducing XML, CSS, XSL eXtensible Markup Language Cascading Style Sheets XML Style Language."— Utskrift av presentasjonen:

1 Digital Documents Gisle Hannemyr Autumn 2002 Introducing XML, CSS, XSL eXtensible Markup Language Cascading Style Sheets XML Style Language

2 11.sep. 2002Gisle HannemyrSide #2 Outline of lectures Act 1: The Resource Discovery Problem  Why the Internet is not a library Act 2: Introducing Semantic Markup: XML, CSS, XSL  XML: eXtensible Markup Language  CSS: Cascading StyleSheets  XSL: eXtensible Stylesheet Language Act 3: XML vocabularies and technologies  Xlink, XML Base, Xpointer, Xpath  XML DOM, Xschema  XTM: XML Topic maps  RDF: Resource Description Framework

3 11.sep. 2002Gisle HannemyrSide #3 XML : eXtensible Markup Language W3C har definert XML som den foretrukne standard fra for å definere dokument- markeringer. Fleksibelt format. Er utall bruksområder, eks.:  Elektroniske dokumenter (EDI), ressursoppdagelse, tjenesteoppdagelse, objektutveksling XML er kompakt (44 sider), men er omgitt av en lang rekke avledede/tilknyttede teknologier

4 11.sep. 2002Gisle HannemyrSide #4 SGML, HTML, XML og XHTML SGML  syntaks for markeringsspråk for dokumenter  primært utviklet for trykkeribransjen (bøker og kataloger)  utviklet av Charles Goldfarb et al. ca tallet  standardisert av ISO (ISO 8879) ca  strengt strukturelt orientert  dokumentmarkeringer i form av tags otags beskrives gjennom en DTD (Document Type Definition)  utvikling av tagsets overlatt til brukerene

5 11.sep. 2002Gisle HannemyrSide #5 SGML, HTML, XML og XHTML HTML  markeringsspråk for definisjon av websider  definert av Tim Berners-Lee ca  statisk syntaks, tagset (DTD) nå definert av W3C  applikasjon av SGML (Standard Generalized Markup Language) o«Laget av noen som hadde hørt om SGML, men som aldri sett det.»  blanding av struktur,, og presentasjon, okaoset toppet seg med HTML 3.2 (1996)  Returnert til strukturell markup, supplert av CSS for presentasjon i m4d HTML 4.0 (1998)

6 11.sep. 2002Gisle HannemyrSide #6 SGML, HTML, XML og XHTML XML  syntaks for definisjon av markeringsspråk, og tagsets som er velformet i forhold til denne  utviklet med tanke på nettpublisering og utveksling av strukturerte data over nett  definert av W3C 1998 (XML 1.0)  i all hovedsak basert på SGML, men forenklet og tilpasset nettpublisering  det utvikles spesfikke tagset for spesifikke XML applikasjoner  XML «erstatter» SGML (ikke HTML)

7 11.sep. 2002Gisle HannemyrSide #7 SGML, HTML, XML og XHTML XHTML  en redefinering av HTML 4.0 fra en SGML-applikasjon til en XML-applikasjon  XHTML 1.0 er for alle praktiske formål funksjonelt det samme som HTML 4.0  «strammere» syntaks: o¬, men o¬ foo, men foo

8 11.sep. 2002Gisle HannemyrSide #8 SGML  XML/XHTML: Tidslinje Semantisk struktur Presentasjons- struktur SGML (w. FOSI) HTML 1.0 HTML 3.2 HTML 4.0 CSS XML/ XHTML XSL etc

9 11.sep. 2002Gisle HannemyrSide #9 XML vs SGML XML = SGML-light + hypertext + applications  SGML was too complicated, too many rules  SGML difficult to parse  SGML does not handle encodings very well.  SGML had no notion of hypertext  SGML did not evolve into an application framework Hottest buzzword of 2002: «Web Services»  RPC using XML-defined objects  Asynchrounous, Course grained, Loosely coupled computing

10 11.sep. 2002Gisle HannemyrSide #10 XML vs. HTML HTML – visual markup: XML – semantic markup: 29.99

11 11.sep. 2002Gisle HannemyrSide #11 Hva XML er: XML er en enkel, portabel, standardisert måte å beskrive data på XML-formaterte dokumenter er tekst, og kan skapes, endres og leses med et hvilket som helst program som lar deg redigere tekst XML-formatet kan leses og forstås av mennesker så vel som dertil egnede programmer.

12 11.sep. 2002Gisle HannemyrSide #12 Hva XML ikke er: XML er ikke en protokoll  XML-data transporteres med andre protokoller (typisk FTP eller HTTP – SOAP er vanligvis «bakt inn» i HTTP). XML er ikke en database  en database kan inneholde XML-data eller du kan lage et program som tilgjengeliggjør data fra en database i XML-format  XML-aware databaser som Oracle tillater bruk av lagring og spørring direkte mot XML-strukturer XML kan ikke representere alle typer informasjon  XML forutsetter informasjonen lar seg representere i en hierarkisk trestruktur med elementer og attributter

13 11.sep. 2002Gisle HannemyrSide #13 XML applications en XML application er ikke et bruker-progam (engelsk: application) som bruker XML isteden er den spesifikk anvendelse (engelsk: application) av XML rettet inn mot et bestemt formål, som for eksempel ressursoppdagelse eller vektorgrafikk en XML application er som regel dokumentert i form av en anvendelsesspesifikk DTD

14 11.sep. 2002Gisle HannemyrSide #14 Some XML vocabularies, standards and technologies For transformations:  XSL – eXtensible Stylesheet Language For semantic web:  RDF – Resource Description Framework  XTM – XML Topic Maps Application oriented:  ebXML – electronic business XML  MathML – Mathematical Markup Language

15 11.sep. 2002Gisle HannemyrSide #15 More XML vocabularies, standards and technologies Technologies for Web Services (Web Services  Standard component or application exposed through standard XML and Internet protocols)  WSDL – Web Services Description Language oMetadata that (in principle) can be used to generate client-side proxy code for accessing the service.  UDDI – Universal Description, Discovery and Integration oService discovery through standardized registrys maintained by portals/brokers  SOAP – Small Object Access Protocol oSOAP  RPC where messages are encoded using XML (transported embedded in HTTP)

16 11.sep. 2002Gisle HannemyrSide #16 BrokerPublisher Consumer Bind/Carry SOAP Find UDDI Publish WDSL Web Services Model (CORBA reborn?)

17 11.sep. 2002Gisle HannemyrSide #17 “Valid” og “Well formed” “Valid” (gyldig)  innebærer at det eksisterer en spesifikk DTD som beskriver det tagset som er brukt til å beskrive dokumentet. “Well formed” (velformet)  kan brukes uten en tilhørende DTD  må likevel følge bestemte syntaktiske regler

18 11.sep. 2002Gisle HannemyrSide #18 Well formed XML Startmarkering er og sluttmerkeringer er (så langt akkurat som HTML)  I HTML er det imidlertid lov å utelate sluttmarkeringen (og overlate til parseren å finne ut hvor elemented terminerer). Det er det ikke i XML. Tomme elementer (elementer uten tegndata) må derfor skrives slik:,.  XML tillater imidlertid at de også skrives slik:,. I motsetning til HTML er små og store bokstaver forskjellige i XML (  ).  Bruk fortrinnsvis små bokstaver.

19 11.sep. 2002Gisle HannemyrSide #19 Well formed XML Unlike HTML, nearly all XML markup is case- sensitive, including element tag names and attribute names and values. All XML names must begin with a letter, underscore ‘_’ or colon ‘:’. Inside names you can also use digits, hyphen ‘-’ and full stops ‘.’. In practice, the colon should only be used as a namespace delimiter. Letters are not limited to ASCII characters.

20 11.sep. 2002Gisle HannemyrSide #20 XML: Hallo Verden! Et svært enkel eksempel på et velformet XML-dokument er vist nedenfor. Det viser de den fundamentale komponenten som et XML-dokument er bygget opp av: elements (elementer). hallo, verden! Akkurat dette dokumentet består av et enkelt element som er av type hilsen. Elementet er avgrenset av den markering (tag) som omgir det, nemlig startmarkering og sluttmarkeringen. Teksten mellom markeringene kalles for tegndata (character data).

21 11.sep. 2002Gisle HannemyrSide #21 XML: Dokumentstruktur XML-dokumenter har en trestruktur: Elementer kan kun forekomme nøstet inne i andre elementer, eller som en sekvens. Peter Wessel Zapffe filosof jurist forfatter

22 11.sep. 2002Gisle HannemyrSide #22 XML: Dokumentstruktur fornavnjuristforfatteretternavnfilosof person yrke Peter Wessel Zapffe navn Rotelement NB: Kun ett rotelement pr dokument. For et XHTML- dokument er dette HTML.

23 11.sep. 2002Gisle HannemyrSide #23 XML: Attributter XML-elementer kan ha attributter: Peter Wessel Zapffe filosof jurist forfatter

24 11.sep. 2002Gisle HannemyrSide #24 XML: Attributter vs. tegndata I dette eksemplet bruker vi attributter i stedet for tegndata for å kode mer eller mindre samme informasjon som på forrige lysbilde.

25 11.sep. 2002Gisle HannemyrSide #25 XML: Entitetsreferanser En del tegn kan ikke forekomme i tegndata fordi de har spesielle betydninger. Fra SGML har XML arvet en begrenset versjon av det som kalles for enititetsreferanser (entity references). Dette er symboler som refererer til andre data. De innledes med & og avsluttes med ;. I XML er bare 5 slike predefinert (men du kan definere nye i DTDen). & ampersand, (og) & < less then (mindre enn) " quotation marks (gåseøyne) " ' apostrophe (apostroff) '

26 11.sep. 2002Gisle HannemyrSide #26 XML: Tegndataseksjoner En spesiell syntaks brukes for å spesifisere at alt i et område er tegndata (character data) og at spesialtegn ikke skal tolkes: Et svært enkel eksempel på et velformet XML-dokument er vist nedenfor. hallo, verden! ]]> Dette er i første rekke praktisk når man skal legge eksempler på XML inn i en tekst slik at den blir vist (og ikke tolket av parseren).

27 11.sep. 2002Gisle HannemyrSide #27 XML: Prosesseringsinstruksjoner XML tilbyr en mekanisme som gjør det mulig å sende informasjon til spesielle programmer som kan finne på å tolke siden. Dette kalles for prosessetingsinstruksjoner (processing instructions). En slik instruksjon innledes med. Navnet identifiserer hvilke programmer instruksjonen er beregnet på. Eks.: Denne instruksjonen er en beskjed til søkemotorroboter. Det første attributtet (index) sier at siden skal indekseres av søkemotoren, men at ingen hyperlenker på siden skal følges videre.

28 11.sep. 2002Gisle HannemyrSide #28 XML:Prosesseringsinstruksjoner Kan inneholde hele programmer FEIL: Får ikke forbindelse med database. "; exit; } if (!mysql_select_db ($my_database)) { echo " FEIL, klarer ikke åpne DB \"$my_database\"!". "*** FEIL: ". mysql_error (); exit; } ?>

29 11.sep. 2002Gisle HannemyrSide #29 XML- Deklarasjon Et XML-dokument kan (og bør) starte med en XML-deklarasjon: (NB: Ikke en prosesseringsinstruksjon. Kan bare forekomme i starten av dokumentet.) Dersom vi ikke angir tegnsett-enkoding antas Unicode. Det er to valgfrie attributter. encoding brukes for å angi tegnsett, og standalone om en ekstern DTD er nødvendig.

30 11.sep. 2002Gisle HannemyrSide #30 XML: Kommentarer Kommentaer i XML bruker samme syntaks som SGML: Kommentarer kan brukes hvor som helst i tegndata, og også før eller etter rotelementet, men ikke inne i en markering eller en annen kommmentar. NB: Det er heller ikke lov å ha to bindestreker noe sted inne i en kommentar.

31 11.sep. 2002Gisle HannemyrSide #31 DTD: Document Type Definition En DTD for det gjennomgående eksemplet vårt:

32 11.sep. 2002Gisle HannemyrSide #32 XML Namespaces XML tilbyr navnerom for to formål: 1.Å skille mellom elementer og attributter fra ulike XML appliksjoner som deler samme navnerom. 2.Å gruppere alle elementer og attributter fra samme XML applikasjon sammen så vi lett kan kjenne dem igjen. xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#" xmlns:dc="http://purl.org/dc/elements/1.0/"

33 11.sep. 2002Gisle HannemyrSide #33 Styles and transformations Cascading Style Sheets (CSS) Extensible Stylesheet Language (XSL)

34 11.sep. 2002Gisle HannemyrSide #34 Presentasjon av en semantisk vev (XML) Løsning 1: Cascading Style Sheets (CSS)  Enkel, presentasjonsdreven modell  Fungerer best i Opera 6.0 Løsning 2: Extensible Stylesheet Language (XSL)  Kompleks, regelbasert modell, tuftet på transformasjon fra semantisk orientert XML til en annen (typisk presentasjonsorientert) XML  Fungerer i MSIE 5.0

35 11.sep. 2002Gisle HannemyrSide #35 To eksempler Skal gå først gå gjennom to eksempler på hvordan dette kan gjøres i hhv. CSS og XSL (med utgangspunkt i et enkelt XML- dokument). Skal deretter gå gjennom CSS og XSL i mer detalj.

36 11.sep. 2002Gisle HannemyrSide #36 XML-dokument ?xml version="1.0"?> Fridtjof Nansen forfatter idrettsmann polarforsker politiker zoolog … forts. på neste lysbilde

37 11.sep. 2002Gisle HannemyrSide #37 XML-dokument (forts.) forts. fra forrige lysbilde … Peter Wessel Zapffe filosof jurist forfatter Her har vi altså XML-markerte data md mini.biografier av de to personene Fridtjof Nansen og Peter Wessel Zapffe.

38 11.sep. 2002Gisle HannemyrSide #38 XML-dokument ?xml version="1.0"?> Fridtjof Nansen forfatter … osv. Vi har nå føyd til en konkret referanse til et stilark av type CSS.

39 11.sep. 2002Gisle HannemyrSide #39 CSS stilark & resultat person { display: block; margin: 1em; } yrke { display: block; text-indent: 1em; } etternavn { font-weight: bold; }

40 11.sep. 2002Gisle HannemyrSide #40 XML-dokumentet på nytt ?xml version="1.0"?> Fridtjof Nansen forfatter … osv. Eneste endring er at vi nå peker til et stilark av type XSL.

41 11.sep. 2002Gisle HannemyrSide #41 XSL stilark (template) Biografier, ( - )

42 11.sep. 2002Gisle HannemyrSide #42 Resultat NB: Opera støtter ikke XSL ennå MSIE tolker XSL (og XSLT) og konstruerer en formatert side. Legg merke til at også attributtene kan vises.

43 11.sep. 2002Gisle HannemyrSide #43 Introduksjon til CSS Utviklet av Håkon Wium Lie og Bert Bos for W3C. Tar utgangspunkt i deklarativ formatering (separasjon av innhold og form). Brukes vanligvis til å endre format på predefinerte HTML (og XHTML) tags. Kan også brukes sammen med velformet XML. Er utviklet pre-XML og er derfor ikke definert som en XML-applikasjon.

44 11.sep. 2002Gisle HannemyrSide #44 Hvorfor «cascading» En av grunntankene bak CSS er at mer enn ett stilark skal kunne påvirke formatet på en webside  designeren av websiden  brukeren  nettleseren (særlig med tanke på spesielle lesere, som lydlesere for blinde, små portable enheter, og særlige anvendelser, som lysbilder) cascade: […] something arranged in a series

45 11.sep. 2002Gisle HannemyrSide #45 Regler for multiple stilark Vanligvis brukes følgende presedens: 1.Designer 2.Bruker 3.Utstyret Ansvaret ligger imidlertid i nettleseren, slik at denne (evt. styrt av brukeren – jf. author mode og user mode i Opera) har ansvar for hvordan evt. konflikter blir løst.

46 11.sep. 2002Gisle HannemyrSide #46 Hvor kan stiler defineres Standardverdier innbakt i nettleseren. Brukerpreferanser angitt til nettleseren. Fra designeren:  Ved å lenke til et eksternt stilark  Globalt for hele dokumentet (i et - element).  Lokalt til et element (som verdi tilordnet et style -attributt)

47 11.sep. 2002Gisle HannemyrSide #47 Eksempel på CSS (global) Global redefinering av : h1 { color: green; text-align: center; }

48 11.sep. 2002Gisle HannemyrSide #48 Eksempel på CSS (element) Lokal redefinering av : Introduksjon... Stilangiveksen er et attributt til h1 – elementet. Bortsett fra at det står i gåseøyne er syntaksen identisk til når det defineres globalt.

49 11.sep. 2002Gisle HannemyrSide #49 CSS og klasser Definerer en klasse red av : h1.red { color: red; } Eksempel: Rød overskrift

50 11.sep. 2002Gisle HannemyrSide #50 Anonyme CSS-klasser Definerer en anonym klasse red :.red { color: red; } Eksempel: Rødt avsnitt

51 11.sep. 2002Gisle HannemyrSide #51 CSS gir adgang til å spesifisere Farger (forgrunn og bakgrunn) Tegnsett og tilhørende egenskaper Luft rundt blokkelementer Hyperlenker: utseende og dekorasjoner

52 11.sep. 2002Gisle HannemyrSide #52 Selektorer CSS er rett og slett en liste med regler for framvisning). Hver regel angir en selektor, etterfulgt av deklarsjon (constraints). Contraints anvendes på selektert tekst selector {deklarasjoner;...}

53 11.sep. 2002Gisle HannemyrSide #53 Primære CSS selektorer CSS støtter fire grunnleggende måter å selektere tekst for å anvende en stilregel:  Element navn (f.eks. h1, p)  Element attributt (f.eks. class, id, style)  Kontekst (f.eks. h1 b)  Ekstern informasjon (pseudo-classes and pseudo-elements)

54 11.sep. 2002Gisle HannemyrSide #54 CSS konstruktorer ( div / span ) Disse, sammen med klasse-attributtet, gjør CSS-rimelig utvidbar:  div konstruerer nye blokkelementer.  span konstruerer nye inline-elementer Navn: Zapffe.

55 11.sep. 2002Gisle HannemyrSide #55 Eksotiske selektorer (1) Forekomst av attributt: [border] {border:medium ridge} table[border] {border:thin solid} Verdien av en attributt: [align=”left”] {text-align:left} Substreng inne i et attributt: [class~=”navn”] {text-weight:bold} Språk :  [lang|=”no-nyn”] {color: blue}

56 11.sep. 2002Gisle HannemyrSide #56 Eksotiske selektorer (2) Barn: div.ch div.warn > P {text-indent: 0} Følge (evt. ingen følge): P + P {text-indent: 1em} Avanserte pseudo-klasser:  A:link:hover { background: yellow } Avanserte pseudo-elementer: P.note:before {content:”NB: ”} “Any”:  * {cursor: auto}

57 11.sep. 2002Gisle HannemyrSide #57 Sideutlegg i CSS Basert på en boksmodell  Margin (rommet mellom boksene)  Border (omslutter boksen og kan gis farge)  Padding (rommet mellom tekst og “border”) Kan kontrollere høyre, venstre, topp og bunn individuellt Begrensningsorientert

58 11.sep. 2002Gisle HannemyrSide #58 Introduksjon til XSL XSL (eXtensible Stylesheet Language)  XSL er en XML-applikasjon (eller to? XSLT og FO)  Et rammeverk for transformasjon av XML- dokumenter til andre XML-dokumenter  De framvisningsorienterte dokumentene som er resultatet, kan gjerne gjøre bruk av CSS  Transformasjoner er ikke reversible  XSLT er Turing-komplett (dvs. fullverdig programmeringsspråk) XSL er uheldig betegnelse – siden det ikke er primært er et stilark (og vedhenget FO passer ikke nødvendigvis inn)

59 11.sep. 2002Gisle HannemyrSide #59 XSL, XSLT og FO XSL består egentlig av to deler (med hvert sitt navnerom)  XSL: (XSLT - XSL Transformations) oXML-appliaksjon for spesifisere transformasjon fra XML til en annen representasjon (som gjerne også kan være XML)  FO: (XSL Formatting objects) oXML-applikasjon for å angi hvordan bestemte mønster skal formatteres. o«FO considered harmful»?

60 11.sep. 2002Gisle HannemyrSide #60 XSLT: XSL Transformasjoner XSLT Prosessor (XML kildedokument, XSL template )  Resultat Det finnes en rekke XSLT prosessorer på markedet, og i tillegg er som sagt MSIE 5.0 i stand til å forstå XSLT. Kommersiell: XMLSpy (www.xmlspy.com) Gratis: XT: (http://www.jclark.com/xml/xt.html)

61 11.sep. 2002Gisle HannemyrSide #61 XSLT – XSL Transformations XSLT is a language used for transforming XML documents:  Structural transformations: XML to XML, namespace translations, etc.  Creating dynamic documents: sorting, filtering, splitting in sub-documents, etc.  Transformation into a rendition format: XML to XHTML + CSS, WML, PDF, etc.

62 11.sep. 2002Gisle HannemyrSide #62 What XSLT can't do XSLT is Turing-complete, but …  can’t construct Xpath expressions at runtime ocan’t refer to currently used style sheet for variable  (more, p. 75ff)

63 11.sep. 2002Gisle HannemyrSide #63 XSL – Hello, World XML Kildedokument: Hallo, verden XSL Template: Resultatet: Hallo, verden

64 11.sep. 2002Gisle HannemyrSide #64 Et litt mer komplisert eksempel La oss si at et XML-dokument inneholder følgende fragment: Dette er et viktig poeng. Og at vi har definert en XSL template som følger: Dette vil produsere en transformasjon det det som omsluttes av taggen får font-weight satt til bold.

65 11.sep. 2002Gisle HannemyrSide #65 fo: XSL Formatting Objects XSL FO er et XML-basert markeringsspråk for å spesifisere typografi, sideutlegg og paginering av XML-dokumenter. Formatting objects er mer komplisert enn CSS. FO mønstre tilsvarer selektorer is CSS. her spesifiseres formatting objects for mønster

66 11.sep. 2002Gisle HannemyrSide #66 XSLT er primært deklarativt, men har også... Kontrollstrukturer  xsl:if  xsl:for-each-select  xsl:choose (when … otherwise) Datatyper, uttrykk, variable  xsl:variable etc…

67 11.sep. 2002Gisle HannemyrSide #67 Next … The semantic web: XTM/RDF  XML vocabularies and technologies  XML Topic maps  Resource Description Framework


Laste ned ppt "Digital Documents Gisle Hannemyr Autumn 2002 Introducing XML, CSS, XSL eXtensible Markup Language Cascading Style Sheets XML Style Language."

Liknende presentasjoner


Annonser fra Google