Hvem jeg er Lars Marius Garshol Hovedfag informatikk på Blindern Jobbet et par år med XML i STEP Infotek, før jeg og noen andre startet Ontopia Har sk

Like dokumenter
Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Litt kontekst Topic maps er en måte å organisere informasjon på en ISO standard (ISO/IEC 13250:2000) en XML applikasjon et lag oppå XML (gjerne også o

HVA ER XML? extensible Markup Language En standardisert måte å strukturere ulike typer data Åpent format Enkelt:

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Læringsmål og pensum. v=nkiu9yen5nc

Programmering. Carsten Wulff

Introduksjon til programmering og programmeringsspråk

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

IN uke 1. Komme i gang med programmering

Last ned Utenbordsmotoren - for båtfolk - Tim Bartlett. Last ned

1. Mer om oppbyning av XML-dokument

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

IN uke 1. Komme i gang med programmering

Forslag til ny læreplan for informatikk studieretningsfag

Semistrukturerte data og XML

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

INF2810: Funksjonell Programmering. En metasirkulær evaluator

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

Last ned The baby guest book : for barn som tåler å høre sannheten. Last ned

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

(MVC - Model, View, Control)

Navngivning av XML elementer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Lokal læreplan i valgfag programmering Utkast august 2018

Innlevering 2b i INF2810, vår 2017

INF2820-V2018 Oppgavesett 10 Gruppe 18.4

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

Dagbok. Januar. Uke 2 ( ) Uke 3 ( ) Uke 3 (17.01, 12:45-14:00)

Kom i gang med Python

INF2810: Funksjonell Programmering. En metasirkulær evaluator

En internett basert og fleksibel database som kan tilpasses til ethvert behov, og som vil vokse med bedriften/institusjonen.

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Hjemmeeksamen 2 i INF3110/4110

INF2270 Datamaskinarkitektur

2 Om statiske variable/konstanter og statiske metoder.

Introduksjon til Eclipse

Last ned Bergen - Trond Indahl. Last ned. Last ned e-bok ny norsk Bergen Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Dagens tema: 12 gode råd for en kompilatorskriver

Mal for vurderingsbidrag

Prototyping. TDT4180, vår Yngve Dahl IDI, NTNU NTNU

Forprosjektrapport. Hovedprosjekt Gruppe 15

Last ned Språkskrinet 3. Last ned. Last ned e-bok ny norsk Språkskrinet 3 Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Last ned Språkskrinet 1. Last ned. Last ned e-bok ny norsk Språkskrinet 1 Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Last ned Språkskrinet 2. Last ned. Last ned e-bok ny norsk Språkskrinet 2 Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

1 Forord. Kravspesifikasjon

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Praktisk bevaringsmetodikk - prosesser, rutiner, metoder, verktøy. v/sigve Espeland

Hvordan blir jeg en ordentlig informatikkstudent? Kurs i studiestrategier med fokus på INF1000

2 Om statiske variable/konstanter og statiske metoder.

Kravspesifikasjon Innholdsfortegnelse

Last ned Å bekjempe depresjon - Paul Gilbert. Last ned

Last ned Å bekjempe depresjon - Paul Gilbert. Last ned. Last ned e-bok ny norsk Å bekjempe depresjon Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Velkommen til MAT1030!

MAT1030 Diskret Matematikk

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

1. Lage og vise et enkelt XML-dokument

Kryptering med vigenere-metoden

INF2810: Funksjonell Programmering

Testsituasjon Resultat Kommentar. Fungerer som det skal!

INF120: Oblig 3. Yngve Mardal Moe

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Introduksjon til SOSI_db SOSI-standarden på database-format

To RDF or not to RDF Fagdag om Noark 5 og RDF

INF2810: Funksjonell Programmering

Design og dokumentasjon

Last ned Programmerbare logiske styringer - Dag Håkon Hanssen. Last ned

Last ned Programmerbare logiske styringer - Dag Håkon Hanssen. Last ned

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

En snarvei til INF2100

Last ned NLP i arbeid - Sue Knight. Last ned. Last ned e-bok ny norsk NLP i arbeid Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Et lite oppdrag i bakgrunnen

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Last ned Lær å spille rocke-gitar - Jan Eivind Tønnessen. Last ned

CORBA Component Model (CCM)

Bachelorprosjekt 2015

Temadag: Med fokus på Infor OS Dato:

IN uke 1. Komme i gang med programmering

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF1300 Introduksjon til databaser

Akseptansetest av mottak Rekvirering av medisinske tjenester Immunologi

Vekeplan 4. Trinn. Måndag Tysdag Onsdag Torsdag Fredag AB CD AB CD AB CD AB CD AB CD. Norsk Matte Symjing Ute Norsk Matte M&H Norsk

Norsk Sprak Grammatikk

MAT1030 Diskret Matematikk

Hvorfor ikke bruke Word?

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Forelesning 27. MAT1030 Diskret Matematikk. Bevistrær. Bevistrær. Forelesning 27: Trær. Roger Antonsen. 6. mai 2009 (Sist oppdatert: :28)

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi

Feilmelding Årsak Løsning

UNIVERSITETET I OSLO

I denne oppgaven skal vi gi en enkel innføring til klasser og objekter (ordene forklares senere i teksten).

Last ned Helt enkel hekling - Tove Fevang. Last ned. Last ned e-bok ny norsk Helt enkel hekling Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

Transkript:

Hvem jeg er Lars Marius Garshol Hovedfag informatikk på Blindern Jobbet et par år med XML i STEP Infotek, før jeg og noen andre startet Ontopia Har skrevet en XML parser i Python, vedlikeholder Free XML Tools Var med på å designe SAX

Boka

Fakta om boka Utgis av Prentice Hall i deres Charles Goldfarb serie Kommer ut i desember (håper jeg) Amazon sales rank: 1,756,688 Ifølge Prentice Hall er den på 1100 sider På A4 papir med 12pt Times: 400 sider Som enkel HTML er teksten 2 MB

Bokens del 1 Utvikling med XML, generelle prinsipper informasjonssystemer, serialisering, deserialisering prosessering av XML leksikalsk og logisk informasjon vanlige oppgaver tegnsett, hvordan håndtere dem

Går gjennom API ene til de ulike parserne Dekker SAX meget grundig Bokens del 2 Event basert programmering Forklarer hva dette er og når det bør brukes Oversikt over API et, deretter detaljene Teknikker illustrert med eksempler Avanserte emner som SAX filtre dekkes også, samt SAX parsere som ikke leser XML

DOM API et dekkes i detalj (a la SAX) Dekker også alternative tre API er (qp_xml, Bokens del 3 Tre basert programmering Forklarer igjen hva dette er og hva det er best til Tar med en del om hva som er galt med DOM og utilities for å hanskes med noe av det Pyxie, groves, JDOM)

Bokens del 4 XML programmering uten programmering handler om XSLT og XPath relativt detaljerte innføringer gis deretter vises hvordan XSLT og XPath motorer kan brukes i applikasjoner hvordan skrive XSLT elementer og XPath funksjoner vises også

Det samme med DOM Deretter gjennomgås XSLT motorenes API er Bokens del 5 Hvordan gjøre dette i Java Java utgaven av SAX dekkes (JAXP, Xalan og SAXON)

Siste del dekker diverse mer spesialiserte emner prosesseringsmåter som ikke er nevnt hittil programmering med schemas og DTD er å generere XML (fra andre datakilder) to mer detaljerte eksempler

Tilleggene En rask introduksjon til Python for de som allerede kan å programmere En liten XML ordbok En oversikt over XML pakker i Python og Java, og hvordan disse installeres

Hvorfor en bok til? Forsøker å lære bort ting som er like gyldige om ti år, selv verktøyene da er annerledes Fokus er mer på prinsipper enn på detaljer Egentlig uavhengig av programmeringsspråk Gir erfaring gjennom å dekke mange ulike API er for samme formål

Flere grunner Dekker en del viktige ting som ikke finnes andre steder: prosesseringsmodellen og dens konsekvenser ytelse programmering med XSLT og XPath å bruke skjemaer/dtd er i programmer tegnsett

Skrivingen

Å skrive en bok "Writing a book is an adventure. To begin with, it is a toy and an amusement; then it becomes a mistress, and then it becomes a master, and then a tyrant. The last phase is that just as you are about to be reconciled to your servitude, you kill the monster, and fling him out to the public." Winston Churchill

Progresjon Våren 99: Holder foredrag i Granada og Göteborg om XML programmering Høsten 99: Foreslår boka for CFG; forslag sendes inn og aksepteres Julen 99: Skrivingen begynner, og fortsetter, og fortsetter, og fortsetter, og...

Bra: kun småpirk igjen Dårlig: nå vet jeg hvordan jeg burde gjort det... Progresjon 2 Påske 2001: Teksten fullføres Sommer 2001: Copyediting Høsten 2001: Retting etter Charles ønske Nå:

XML programmering Abstraksjon hva, hvorfor, hvorfor ikke

Abstraksjon Å jobbe med XML er å jobbe med abstraksjoner på forskjellige nivåer Trikset er å velge riktig nivå for den jobben man vil gjøre På feil nivå blir jobben hardere, eller endatil umulig

Abstraksjon Ordet kommer fra latin: abstractus, en form av abstrahere, som betyr å trekke fra En engelsk betydning er "to withdraw; to separate; to take away". En annen er "That which comprises or concentrates in itself the essential qualities of a larger thing or of several things."

Abstraksjonslag Under XML prosessering arbeider man med flere lag av abstraksjon Utgangspunktet er at applikasjonen mottar en strøm av bytes Så skal man på en eller annen måte tolke denne strømmen Løsningen er å jobbe seg oppover, lag for lag

Bytes til tegn Det første skrittet er å gjøre om bytes til tegn Dvs: 3C 3F 78 6D 6C må bli til <?xml Siden XML er basert på Unicode må dette gjøres riktig, ellers blir resultatet bare tull Heldigvis er dette lett med XML: parseren gjør jobben Men, vi vet ikke lenger hva tegnkodingen var

Tegn til tokens Det neste skrittet er å gjøre om <foo abc="def"/> til <, foo, S, abc, =, ", def, ", /> Sjelden man ser på dette trinnet, men expat gjør det mulig å jobbe her (se xmltok)

Hvorfor tokens? De eneste som har noe behov for å jobbe her er de som trenger informasjonen de neste trinnene kaster (editorer, stort sett) Ikke alle parsere gjør dette trinnet, de som ikke gjør det gir dårligere feilmeldinger Tapt informasjon: whitespace i markup

Events Dette er nivået SAX ligger på: start dokument, start element, tekst, slutt element Nå har vi mistet masse informasjon, men til gjengjeld er det mye lettere å arbeide De eneste applikasjonene som bør lages på dette nivået er de helt generelle Variant: pull APIs

Trær Dette er nivået DOM ligger på: en objekt struktur som representerer dokumentet XML databaser ligger også på dette nivået Tapt informasjon (i forhold til SAX): posisjon i opprinnelig dokument Noen applikasjoner med spesielle behov kan skrives her, men det er egentlig få

Abstrakte dokumenter Dette er nivået XSLT og XPath jobber på Her bryr vi oss ikke om objekter lenger, vi bare peker og sier "gjør!" Å skrive applikasjoner på dette nivået er særdeles behagelig, men ikke alltid særlig effektivt Tapt informasjon: noe, men ikke så mye

Domeneobjekter Dette er objekter som representerer dataene man ønsker å jobbe med direkte De må programmeres spesielt for hver eneste applikasjon man lager Kan en applikasjon skrives på dette nivået anbefales det på det varmeste Tilsvarer bruk av OR mapping med RDBMS

Lagene

Takk for meg! Det var alt for denne gang Boken har hjemmeside på http://www.garshol.priv.no/download/text/ph1/