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 © Björn Hedin, NADA/KTH XML och Unix 2D1522 Datorteknik och -kommunikation

2 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH XML eXtensible Markup Language

4 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH Exempel - XHTML Personlig webbsida för Förnamn Efternamn

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

7 © Björn Hedin, NADA/KTH Exempel - Dataformat T00:11:

8 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH Kommentarer Kommentarer omsluts med Får EJ finnas i en tag. Får EJ innehålla strängen -- Godkänt exempel Felaktiga exempel >

19 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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å En generell valideringstjänst som klarar andra vokabulärer än xhtml finns på XML Schemas kan valideras på

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

26 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH DTD - Grupperingar Parenteser kan användas för att gruppera element. Sedan kan *, + och ? appliceras på hela parentesen som en grupp. Exempel

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

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

30 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH DTD - Övningar Skriv ett instansdokument som kan valideras mot följande DTD (a är root-elementet):

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

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

35 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH Interna/Externa DTDer Vanligtvis ligger DTD- deklarationerna i en extern fil. Exempel extern DTD Filen student.dtd Filen student.xml (instansdokumentet) Bjorn Hedin

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

41 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH Filsystemet

52 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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 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 © Björn Hedin, NADA/KTH 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 © Björn Hedin, NADA/KTH 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