Presentation laddar. Vänta.

Presentation laddar. Vänta.

2002-03-18 © Björn Hedin, NADA/KTH 2002 1 XML och Unix 2D1522 Datorteknik och -kommunikation

Liknande presentationer


En presentation över ämnet: "2002-03-18 © Björn Hedin, NADA/KTH 2002 1 XML och Unix 2D1522 Datorteknik och -kommunikation"— Presentationens avskrift:

1 2002-03-18 © Björn Hedin, NADA/KTH 2002 1 XML och Unix 2D1522 Datorteknik och -kommunikation http://www.nada.kth.se/kurser/kth/2D1522/

2 2002-03-18 © Björn Hedin, NADA/KTH 2002 2 Dagens föreläsning Syfte –Få en introduktion till XML, vilket är det vanligaste dataformatet för att strukturera data idag. –Lära er grunder och principter i Unix, vilket det händer att man stöter på “i verkligheten” Mål –Lära er vad XML är, –Skillnaden mellan “well formed och valid” –Hur man skriver en DTD –Tillräckligt mycket Unix-kunskap för att klara laborationen

3 2002-03-18 © Björn Hedin, NADA/KTH 2002 3 XML eXtensible Markup Language

4 2002-03-18 © Björn Hedin, NADA/KTH 2002 4 Vad är XML Ett meta-märkspråk med vilket man kan bygga märkspråk som xhtml, wml, smil etc. Inget exekverande programspråk, endast för att strukturera data. Rekommendation förvaltad av W3C. XML-familjen = XML + relaterade rekommendationer som xslt, xpath, xlink mm.

5 2002-03-18 © Björn Hedin, NADA/KTH 2002 5 Exempel - XHTML Personlig webbsida för Förnamn Efternamn

6 2002-03-18 © Björn Hedin, NADA/KTH 2002 6 Exempel - SMIL

7 2002-03-18 © Björn Hedin, NADA/KTH 2002 7 Exempel - Dataformat 3.0 1997-10-06T00:11:00.00+2 17 14322

8 2002-03-18 © Björn Hedin, NADA/KTH 2002 8 Element Ett element är den grundläggande informationsenheten i en xml-applikation. Ett element har en start- tag, ett innehåll och en slut-tag. Exempel XML Lecture Start-tag Innehåll Slut-tag

9 2002-03-18 © Björn Hedin, NADA/KTH 2002 9 Simple-, Complex- eller Empty content Simple content - En tag innehåller endast text. Complext content - En tag innehåller en eller flera andra tags och eventuellt text. Empty content - En tag innehåller inget. Exempel XML Lecture har Complex Content har Simple Content har Empty Content Kortversion av

10 2002-03-18 © Björn Hedin, NADA/KTH 2002 10 Attribut Attribut innehåller extra information om ett element T.ex. width på bilder, href på länkar Skrivs på formen Exempel Link Observera att det går att innesluta attributvärdet antingen ”värde” eller ’värde’, men inte ”värde’ eller ’värde”.

11 2002-03-18 © Björn Hedin, NADA/KTH 2002 11 Attribut eller element? Då man själv gör ett märkspråk ställs man ofta inför valet att koda något som ett attribut eller ett element. Valet är huvudsakligen en smakfråga. Exempel Eller 2s b.jpg

12 2002-03-18 © Björn Hedin, NADA/KTH 2002 12 Trädstruktur XML-strukturer bildar alltid en trädstruktur Alla XML-strukturer har ett ”root-document” Exempel HTML XML Lecture html headbody title XML Lecture root Tecken-data

13 2002-03-18 © Björn Hedin, NADA/KTH 2002 13 Föräldrar, barn, syskon Element som innehåller andra element kallas dessa elements förälder. Omvänd relation kallas barn. Element på samma nivå kallas syskon. Exempel HTML XML Lecture html headbody title XML Lecture

14 2002-03-18 © Björn Hedin, NADA/KTH 2002 14 Reserverade tecken Vissa tecken är reserverade då de har speciell betydelse i XML. De kodas som ”entitetsreferenser”. Även svenska tecken kodas oftast som entitetsreferenser Exempel << (less than) >>(greater than> &&(ampersand) ”"(quotation) ’'(apostrophe) ÅÅ ÄÄ ÖÖ å å ä ä ö ö

15 2002-03-18 © Björn Hedin, NADA/KTH 2002 15 CDATA och PCDATA PCDATA = Parsed Character Data. Parsern ersätter entitetsreferenser med deras värde. CDATA = Character Data. Entitetsreferenser tolkas ej. Exempel Om man har många ”konstiga” tecken som man av lathet eller något annat skäl vill skriva in utan entitetsreferenser kan man innesluta tecknen i en CDATA-sektion. Den inleds med strängen &, ’ och ” är alla reserverade tecken ]]>

16 2002-03-18 © Björn Hedin, NADA/KTH 2002 16 Namngivning Namn på tags och attribut måste inledas med en bokstav eller ”_” Därefter bokstäver och/eller siffror. Svenska tecken OK men bör undvikas i praktiken ”xml” reserverat som inledning Godkända exempel Felaktiga exempel

17 2002-03-18 © Björn Hedin, NADA/KTH 2002 17 Well-formed Ett xml-dokument är ”well formed” om det uppfyller ett antal kriterier. Alla xml- dokument måste vara well-formed. Exempel Varje start-tag måste ha en motsvarande slut-tag ( ) Elementen måste bilda en trädstruktur (t.ex. men EJ ) Attributvärden måste omslutas av citat- tecken eller apostrofer. Observera att många html-editorer inte uppfyller något av ovanstående krav. Fullständig lista i kapitel 18 av XML in a nutshell, något mer lättbegripligt på sid 23 i samma bok.

18 2002-03-18 © Björn Hedin, NADA/KTH 2002 18 Kommentarer Kommentarer omsluts med Får EJ finnas i en tag. Får EJ innehålla strängen -- Godkänt exempel Felaktiga exempel >

19 2002-03-18 © Björn Hedin, NADA/KTH 2002 19 Processinstruktioner Processinstruktioner kan användas för att skicka vidare information till applikationer. Många applikationer har tidigare använt kommentarer i samma syfte, vilket är dåligt. Exempel Denna processinstruktion kan sedan plockas upp exempelvis av en webserver som kan använda informationen till att styra sitt beteende. Processinstruktioner inleds med

20 2002-03-18 © Björn Hedin, NADA/KTH 2002 20 XML-deklarationer XML-dokument bör inledas med en XML- deklaration. Den innehåller: –XML-version –Teckenkodning –Om en extern dtd används Exempel Teckenkodning (t.ex. ascii, iso-8859_1 eller unicode kan väljas med ”encoding”) standalone=”no” används om en extern DTD finns. Förklaring av DTD kommer senare.

21 2002-03-18 © Björn Hedin, NADA/KTH 2002 21 Dokumenttypdeklaration XML-dokument kan även innehålla en Document Type Declaration som anger en eventuell DTD. Exempel imf är i ovanstående fall root-elementet SYSTEM används om det inte är en ”officiell” DTD, annars används PUBLIC URLen är urlen till DTDn Kan även innehålla en så kallad ”public ID”, t.ex. ”-//W3C//DTD XHTML 1.0 Transitional//EN"

22 2002-03-18 © Björn Hedin, NADA/KTH 2002 22 Tag-set Tags och deras attribut för ett visst område kallas ”tag-set”, ”xml application” eller ”xml vocabulary”. Exempel ingår i den tag-set som finns för xhtml men inte för SVG ingår i den tag-set som finns för xsl men inte för xhtml ingår i både xhtml’s tag-set och wml’s tag-set.

23 2002-03-18 © Björn Hedin, NADA/KTH 2002 23 DTD I en Document Type Definition (DTD) definierar man en tag- set och de inbördes relationer som ska gälla. Samma sak kan idag göras med t.ex. XML Schemas. Exempel, och är alla definierade i DTDn för XHTML. I den DTDn anges att ett - element ska innehålla exakt et - element följt av exakt ett element. Detta uttrycks genom följande rad i DTDn

24 2002-03-18 © Björn Hedin, NADA/KTH 2002 24 Valid Om ett XML-dokument är well-formed och uppfyller alla de begränsningar som ges av dess DTD är det ”valid”. Processen att kontrollera detta kallas ”validering” Exempel xhtml-dokument kan valideras på http://validator.w3.org/ En generell valideringstjänst som klarar andra vokabulärer än xhtml finns på http://www.stg.brown.edu/service/xmlvalid XML Schemas kan valideras på http://www.w3.org/2001/03/webdata/xsv

25 2002-03-18 © Björn Hedin, NADA/KTH 2002 25 DTD - Element Element definieras enligt syntaxen Sekvenser separeras med kommatecken Teckendata skrivs #PCDATA Exempel

26 2002-03-18 © Björn Hedin, NADA/KTH 2002 26 DTD - Repeterande element Default är att ett element förekommer exakt en gång. Vill man ange något annat finns *, + och ? OBS!! Fel på sidan 35 i boken, korrekt till höger. Exempel * betyder 0, 1 eller flera gånger + betyder 1 eller flera gånger ? betyder 0 eller 1 gång Definition Instansdokument hej

27 2002-03-18 © Björn Hedin, NADA/KTH 2002 27 DTD - Grupperingar Parenteser kan användas för att gruppera element. Sedan kan *, + och ? appliceras på hela parentesen som en grupp. Exempel

28 2002-03-18 © Björn Hedin, NADA/KTH 2002 28 DTD - Val För att ange valmöjlighet mellan en mängd element kan operatorn | användas. Exempel

29 2002-03-18 © Björn Hedin, NADA/KTH 2002 29 DTD - Tomma element Tomma element, alltså element utan innehåll deklareras med EMPTY Exempel

30 2002-03-18 © Björn Hedin, NADA/KTH 2002 30 DTD - Blandat innehåll I vissa fall är det önsvärt att kunna blanda teckendata med element. Typexemplet är web. #PCDATA måste vara först i en val-lista. Exempel Deklaration Instansdokument hej hopp tjoho

31 2002-03-18 © Björn Hedin, NADA/KTH 2002 31 DTD - Godtyckligt innehåll Ibland (mycket sällan) är det önskvärt att deklarera ett element som kan ha godtyckligt innehåll. Det görs med ANY. Exempel Elementet everything kan nu innehålla godtycklig well-formed xml och text blandat.

32 2002-03-18 © Björn Hedin, NADA/KTH 2002 32 DTD - Övningar Skriv ett instansdokument som kan valideras mot följande DTD (a är root-elementet):

33 2002-03-18 © Björn Hedin, NADA/KTH 2002 33 DTD - Övningar Skriv ett instansdokument som kan valideras mot följande DTD (a är root-elementet):

34 2002-03-18 © Björn Hedin, NADA/KTH 2002 34 DTD - Övningar Skriv en DTD som kan validera följande instansdokument.

35 2002-03-18 © Björn Hedin, NADA/KTH 2002 35 DTD - Attribut Ett eller flera attribut kan associeras med ett element. Ett attributnamn kan förekomma i flera element, men ett element kan inte ha två attribut med samma namn Exempel img är elementet attributen ska associeras med. src, width, height är attributnamn CDATA är attributens datatyp #REQUIRED betyder att attributet måste finnas med, #IMPLIED att det kan finnas med

36 2002-03-18 © Björn Hedin, NADA/KTH 2002 36 Attribut - Datatyper Mycket begränsade ”datatyper” finns. De viktigaste är: CDATA NMTOKEN NMTOKENS ENUMERATIONS ID IDREF IDREFS CDATA - Minst begränsade datatypen. NMTOKEN - Alfanumeriska tecken, _, -,. och :. Inte mellanslag. NMTOKENS - En eller flera NMTOKEN separerade av mellanslag (whitespace) Enumerations - Endast ett av en enumerering värden kan antagas. Definieras exempelvis ID - Unika värden inom XML-dokumentet. Som NMTOKEN men kan inte inledas med en siffra IDREF - Används för interna länkar till attribut av ID-typ. Måste alltså antaga ett värde som ett ID-attribut har. IDREFS - En eller flera IDREF

37 2002-03-18 © Björn Hedin, NADA/KTH 2002 37 Entitetsdeklartioner Entitetsdeklarationer kan användas för att ”skapa alias” för långa eller svåra strängar. Deklareras i en DTD, används i instansdokumenten. Exempel I en DTD I ett instansdokument som använder den DTDn Kursen ges av &mtgp; Slutresultat Kursen ges av Medieteknik och Grafisk Produktion I #PCDATA-sektioner går parsern igenom texten och ersätter entiteter med dess värden.

38 2002-03-18 © Björn Hedin, NADA/KTH 2002 38 Parameterentiteter Entitetsdeklarationer skrivs i en DTD och används i instansdokument. Parameterdeklarationer både skrivs och används i DTDer. Exempel Istället kan man deklarera en parameterentitet

39 2002-03-18 © Björn Hedin, NADA/KTH 2002 39 Interna/Externa DTDer Vanligtvis ligger DTD- deklarationerna i en extern fil. Exempel extern DTD Filen student.dtd Filen student.xml (instansdokumentet) Bjorn Hedin

40 2002-03-18 © Björn Hedin, NADA/KTH 2002 40 Interna/Externa DTDer Det går dock även att inkludera deklarationerna i själva instansdokumentet. Exempel intern DTD Bjorn Hedin

41 2002-03-18 © Björn Hedin, NADA/KTH 2002 41 Problem med DTDer Begränsade datatyper (inga int, long, date…) Begränsade repetitionsalternativ (endast ?, * och +) Endast en betydelse för ett element per DTD DTDer är själva inte XML-dokument. Inga möjligheter till ”arvsmekanismer”. Försök till lösning med XML Schemas, men mer om det nästa gång.

42 2002-03-18 © Björn Hedin, NADA/KTH 2002 42 Unix Ett operativsystem, precis som Windows och MacOS Linux, Solaris, Mac OS X m.fl. Unixsystem finns Från början designad för att flera användare ska kunna köra program samtidigt på samma dator. Mycket stabilt. Används ofta för serverapplikationer, såsom webserver, mailserver, filserver. Första implementationen 1969

43 2002-03-18 © Björn Hedin, NADA/KTH 2002 43 GUI/Textgränssnitt Både grafiska gränssnitt och textbaserade gränssnitt finns. Jfr Windows och DOS-prompt Textbaserade gränssnitt speciellt användbara vid fjärrinloggning på system. Enkelt att skriva ”script” som utför en mängd olika kommandon.

44 2002-03-18 © Björn Hedin, NADA/KTH 2002 44 Grundläggande begrepp Shell –Ett ”shell” är en kommandotolk. För att exekvera ett program skriver du in programmets namn i tolken, vilken tolkar kommandot och därpå exekverar det. Process –Ett program som exekveras är en process. Processen innehåller information om öppna filer, variabler mm.

45 2002-03-18 © Björn Hedin, NADA/KTH 2002 45 Filosofi Unix har en liten del (”kernel”) som sköter om det viktigast, såsom minneshantering, resursallokering, filhantering och felhantering. Övriga delar, t.ex. ls, kommandot för att lista filer, är ett eget program som kan bytas ut om man så önskar Många småprogram kan kombineras ihop till att utföra komplexa uppgifter. jfr MS/DOS, Windows m.fl. där ”allt” är integrerat. Lättare att skriva ett litet program som hanterar en liten uppgift bra och effektivt än att skriva ett stort program som hanterar många uppgifter.

46 2002-03-18 © Björn Hedin, NADA/KTH 2002 46 Shell Ett shell är som sagts tidigare en kommandotolk. Kan, förutom dess viktigaste uppgift att starta processer, även hantera variabler, if/then/else-konstruktioner, loopar etc. Det första man möts av när man loggar in via en textterminal är ett shell. Alla program man utför är ”barnprocesser” till detta shell. Om inloggningsskalet avslutas, avslutas normalt sett även dess barnprocesser. Kommandon kan utföras ”batchvis” i ett shellscript.

47 2002-03-18 © Björn Hedin, NADA/KTH 2002 47 Shell-cykeln Shell Skriv ut en prompt Läs ett kommando från tangentbordet Tolka speciella tecken såsom variabler Kör kommandot och vänta tills det avslutas Börja om från början T.ex. ls exekvera programmet ls Skriv ut ev. resultat Återgå till skalet

48 2002-03-18 © Björn Hedin, NADA/KTH 2002 48 Generell kommandosyntax Den generella formen för hur ett kommando ges är: >kommandonamn -flaggor argument Obs. Det inledande >- tecknet är själva kommandoprompten, och kan variera. Exempel >cp -R mapp1 mapp2

49 2002-03-18 © Björn Hedin, NADA/KTH 2002 49 Hjälp För att få hjälp finns t.ex. två hjälpsystem (ofta). De flesta kommandon accepterar flaggan --help för kortfattad beskrivning av de flaggor och argument som kan ges. Klamrar [] anger att något ej är nödvändigt. Vertikalstreck | används för att ange val mellan två alternativ. Exempel >cp --help usage: cp [-R [-H | -L | -P]] [-f | -i] [-p] src target cp [-R [-H | -L | -P]] [-f | -i] [-p] src1... srcN directory >

50 2002-03-18 © Björn Hedin, NADA/KTH 2002 50 Man-blad För mer utförlig hjälp kan man ange kommandot >man kommandonamn Dessa manualblad är oftast tämligen svårtydda om man inte är van. media>man cp CP(1) System Reference Manual CP(1) NAME cp - copy files SYNOPSIS cp [-R [-H | -L | -P]] [-f | -i] [-p] source_file target_file cp [-R [-H | -L | -P]] [-f | -i] [-p] source_file... target_directory DESCRIPTION In the first synopsis form, the cp utility copies the contents of the source_file to the target_file. In the second synopsis form, the contents of each named source_file is copied to the destination target_directory. The names of the files themselves are not changed. If cp detects an at- tempt to copy a file to itself, the copy will fail. The following options are available: -H If the -R option is specified, symbolic links on the command line

51 2002-03-18 © Björn Hedin, NADA/KTH 2002 51 Filsystemet

52 2002-03-18 © Björn Hedin, NADA/KTH 2002 52 Sökvägar Det finns åtminstone tre sätt att ange sökvägar. Antag att du står i katalogen kalle och vill komma åt programmet ls under bin-katalogen under bjornh Absolut sökväg /home/bjornh/bin/ls Relativ sökväg../bjornh/bin/ls Relativt användaren bjornh ~bjornh/bin/ls

53 2002-03-18 © Björn Hedin, NADA/KTH 2002 53 Filrättigheter En fil har tre ägartyper –Ägarnivå –Gruppnivå –Samtliga användare För ägartyp kan tre rättigheter ges –Läsrättighet (r) –Skrivrättighet (w) –Exekveringsrättighet (x)

54 2002-03-18 © Björn Hedin, NADA/KTH 2002 54 Filrättigheter (2) Vilka filrättigheter en fil har kan ses med kommandot ls -l >ls -l afmstud01.xls -rw-r--r-- 1 bjornh staff 11776 Jan 9 11:12 afmstud01.xls media> De första tio tecknen anger rättigheterna. I tur och ordning: –-: afmstun01.xls är en fil, inte en katalog (i så fall “d”) –rw-: Ägaren (bjornh) har läs- och skrivrättigheter, men inte exekveringsrättigheter –r--: Gruppen har läsrättigheter, men inte skriv- eller exekveringsrättigheter –r--: “Samtliga användare” har läsrättigheter, men inte skriv- eller exekveringsrättigheter För att ändra filrättigheter används kommandot chmod (se labb)

55 2002-03-18 © Björn Hedin, NADA/KTH 2002 55 stdin, stdout och stderr Program har standardvärden för varifrån de läser input och skriver output. –Program tar normalt sitt input via tangentbordet (stdin) –De skriver output till skärmen (stdout) –De skriver felmeddelanden tilll skärmen (stderr) Dessa kan omdirigeras till/från t.ex. en fil. >cat fil1 >fil2 –Skriver innehållet som finns i fil1 till fil2 >cat filnamn >>fil2 –“Appendar” fil1 till fil2 Se mer på laborationen

56 2002-03-18 © Björn Hedin, NADA/KTH 2002 56 pipes Output kan även skickas vidare och bli input till ett annat program. Det kallas för en “pipe”. >ls | grep banan | wc –Listar alla filer i katalogen. Output skickas vidare till programmet grep som plockar ut alla rader som innehåller strängen banan. Output från detta (alla rader innehållande strängen banan) skickas vidare till programmet wc (word count) som räknar antalet rader. Med omdirigeringar hade samma sak kunnat uppnås (första “>”- tecknet är kommandoprompten). >ls >a >grep banan a >b >wc b


Ladda ner ppt "2002-03-18 © Björn Hedin, NADA/KTH 2002 1 XML och Unix 2D1522 Datorteknik och -kommunikation"

Liknande presentationer


Google-annonser