Træ struktur: Alle XML dokumenter er grafer og gyldige træ strukturer. Et konkret eksempel herpå kunne være: <data>data.</data>

Størrelse: px
Starte visningen fra side:

Download "Træ struktur: Alle XML dokumenter er grafer og gyldige træ strukturer. Et konkret eksempel herpå kunne være: <data>data.</data>"

Transkript

1 XML generelt:...1 XML:...1 Træ struktur:...2 Kinesiske æsker eller russiske dukker:...4 Besøgs eller Visiting algoritmer:...5 XML og HTML:...8 Hvad er en parser?...9 Velformet:...11 Et script program der kan teste om et dokument er velformet:...16 XML eksempel til illustration af generelle elementer:...18 Mellemrum, tabulator og linjeskift:...20 Producenter og forbrugere af XML dokumenter:...22 To typer af XML dokumenter:...23 Data centriske XML dokumenter:...23 Narrative eller fortællende XML dokumenter:...25 XML dokumentets struktur:...26 At hente XML fra en database tabel:...27 Binære data i XML dokumenter:...29 Konfigurations filer et eksempel på et XML dokument:...30 Typer af noder i et XML dokument:...32 XML parsere:...33 MSXML:...34 SAXON:...35 Expat:...37 Xerces:...37 XML parsere fra Microsoft.NET:...39 XML parser fra Oracle:...39 XML parser fra Chilkat Software:...40 En primitiv script parser:...41 Om brug af Java klasser (programmer):...45 Applets:...45 Java klasser i øvrigt:...45 Encoding:...47 Et tegn sæt (character set):...48 UTF-8 og UTF-16 (Unicode):...48 XML generelt: XML:

2 XML extensible Markup Language er et abstrakt metasprog eller et format som er defineret i en standard fra W3C konsortiet (DOM modellen). XML skal bruges til at skabe XML applikationer eller konkrete anvendelser af XML. Det er meget anbefalelsesværdigt at gå ind på adressen og checke de officielle dokumenter der beskriver XML! Her finder man en fuldstændig specifikation af alle de elementer som omtales i dette kursus! De fleste af dokumenterne er skrevet i et klart og tydeligt sprog. XML stammer fra SGML Standard Generalized Markup Language, der blev udviklet i 1970-erne og tildels brugt i det amerikanske militær og statsvæsen. SGML er nu en officiel ISO standard (International Standards Organization). Ulempen ved SGML var at syntaksen var uhyre kompliceret. HTML var en SGML applikation (konkretisering). DTD skemaer er som vi skal se en SGML applikation og det er dokument formatet DocBook også (som omtales senere i kurset). XML blev designet til Internettet og til brug på Web sider som HTML. I det senere forløb er XML imidlertid blevet brugt til meget andet databaser, interne messages i computeren og på netværk, konfiguration af programmer o.s.v. Efterhånden har XML gået sin sejrs march på alle mulige områder! XML minder om HTML den afgørende forskel er at HTML består af ca 100 forskellige forud definerede tags eller mærker ( så som <b> eller <table>), mens der egentligt ikke findes forud definerede mærker i en XML applikation. En anden afgørende forskel er at HTML er et sprog som alle browsere forstår dvs at bestemte HTML mærker altid får browseren til at formatere (tegne og male!) web siden på en bestemt måde. Ideen med XML er netop at adskille data fra deres formatering (helt modsat HTML)! I princippet er der ingen browsere der forstår XML (en XML applikation) fordi ingen tags er forud definerede! En tredie forskel er at de fleste browsere er meget tolerante over for fejl i HTML dokumentet hvorimod INGEN formelle fejl tolereres (af en parser eller processor) i XML! Vi skal snart se eksempler herpå. Træ struktur: Alle XML dokumenter er grafer og gyldige træ strukturer. Et konkret eksempel herpå kunne være: <data>data.</data> Vi kan omsætte dette gyldige XML dokument i denne træ struktur: 1. hele dokumentet a. data (det eneste og første barn af hele dokumentet som er parent) i. tekst node med værdien Data. (barn af data noden) Dette uhyre simple dokument har altså tre niveauer!

3 Et andet eksempel kunne være denne bil: Vi kan se at træet har forskellige dybder. I første geled kommer data, i næste geled kommer bil, i næste geled kommer producent, bil_id, ind_pris og datering! Når vi i XML - taler om positionen taler vi altid om elementets nummer (position) i det pågældende geled eller i det pågældende niveau! I XML er det vigtigt at holde fast i at vi altid befinder os i en bestemt kontekst altså et bestemt sted i træet! Nedenstående viser de forskellige elementers dybde (tallet i de skarpe parenteser) her produceret af en stylesheet processor:

4 Positionen er i XML 1 baseret den starter med nr 1. Det kan forvirre at elementet data har nummer 2 men det skyldes at selve xml erklæringen som vi skal se er nummer 1! Læg mærke til at både id og bil_id har nummer 2 men på to forskellige niveauer! Kinesiske æsker eller russiske dukker: Et XML dokument består af kinesiske æsker eller russiske dukker uden på og inden i hinanden. Elementer der ligger uden på er wrappers eller containers! Et eksempel på en telefonliste som kinesiske æsker kan vises sådan:

5 Vi kan se at super containeren er elementet telefonliste og at den indeholder mindre containere af typen person! Besøgs eller Visiting algoritmer: Disse algoritmer metoder - definerer i hvilken rækkefølge et XML dokument læses! Hvis vi tager et lidt mere indviklet eksempel end vores første kunne det være: <data> <person>ole</person> <person>erik</person> </data> Træet ser nu således ud:

6 1. hele dokumentet a. data i. person 1. tekst ii. person 1. tekst Objekterne i og ii er børn af data! i og ii er også siblings eller søskende! En XML parser læser dokumentet i en bestemt rækkefølge - nemlig (normalt) dybde først : 1. hele dokumentet 2. data 3. person nr 1 4. teksten for person nr 1 5. person nr 2 6. teksten for person nr 2 Man kan bruge andre algoritmer der f. eks. læser bredde først men disse bruges normalt ikke i XML. Princippet i XML er normalt det at hvis man fjerner alle mærkerne skal teksten kunne læses som det var meningen! Denne tekst er XML dokumentets content eller indhold eller value! Hoved ideen i XML er at adskille indhold og form eller format! Det samme dokument kan have forskellige formater selv om indholdet content er det samme! Formen er blot en ydre form! I HTML er form og indhold blandet sammen fordi mærkerne som f. eks. <b> der betyder vis teksten i fed skrift jo ikke siger noget om indholdet men kun om skrift typen! I HTML har man INGEN muligheder for at markere at dette er et årstal f. eks.! Det kan man i XML. Et lille eksempel på forholdet indhold-form her kunne være disse to XML dokumenter: <person fornavn= Rosalina efternavn= Hansen /> <person> <fornavn>rosalina</fornavn> <efternavn>hansen</efternavn> </person> Disse to XML dokumenter har fuldstændigt det samme indhold eller informations indhold! Det første rummer informationen som værdien af attributter det sidste indeholder under elementer som har et tekst indhold! Men content eller informations indholdet er præcist det samme! Den sidste form kaldes nogle gange for element normal formen. I XML kan man let oversætte fra det ene format til det andet. Et andet eksempel på forskellige former men samme indhold er disse to XML dokumenter:

7

8 XML og HTML: Vi vil se på to eksempler: Først et HTML dokument: <Html> </Html> <Head> </Head> <Body> </Body> <Title>Dette er et HTML dokument.</title> <div style="font-size:18pt;background-color:#dedede"> Dette er et HTML dokument. </div> Når vi åbner filen eksempel.html i Mozilla ses dette:

9 Mozilla forstår HTML og sætter en titel i titellinjen og en div-blok i selve dokumentet. Dette dokument er rent faktisk et gyldigt velformet XML dokument også der blot tilfældigvis anvender de forud definerede tags eller mærker! Det er vigtigt at huske at <HTML> og <html> er det samme i HTML som ikke skelner mellem store og små bogstaver! I XML er de to elementer totalt forskellige!! XML er case sensitive d.v.s. der er altid forskel på <fornavn> og <Fornavn>! Hvis vi gemmer teksten som eksempel.xml (altså blot ændrer fil typen!), fås denne side i en browser her er det Internet Explorer: Hvad er en parser?

10 En parser er et program som læser en XML tekst fil på en bestemt måde. Et XML dokument kan selvfølgeligt vises i et almindeligt tekst behandlings program men Notesblok f. eks. kan ikke parse XML dokumentet! Hvis vi bruger et simpelt eksempel kan vi forklare hvad parseren egentligt gør. Parseren læser tekst filen tegn for tegn byte for byte. <x>44</x> Parseren læser dette tegn: Stadier eller events i læsningen: < parseren opretter et element, et objekt parseren forstår at node typen er element! x > elementet gemmes nu under navnet x, element slut! Parseren kontrollerer at navnet er gyldigt ifl. XML reglerne må f. eks. ikke indeholde et mellemrum! 4 4 < parseren kan nu se at tekstnoden er 44 parseren opretter et nyt objekt af typen tekst node / parseren forstår at dette er et slut mærke, et slut element x > parseren kontrollerer at navnet på det sidste objekt x passer med det tidlige objekt navn! Objektet afsluttes og oprettes. Som vi kan se affyrer parseren visse events når den læser et bestemt tegn! Den sætter bestemte ting i gang når den støder på bestemte bytes eller tegn! Dette er den afgørende forskel på en almndelig læse proces (som når vi åbner filen i Notesblok) og når vi parser dokumentet! En parser kontrollerer at basale regler i XML overholdes. Den forstår de forskellige node typer som element, attribut eller xml-erklæring! Den kan slå op i en XML regelsamling! Hele ideen med XML dokumenter er at de skal kunne parses! En XML parser er en tokenizer som opdeler teksten i XML dokumentet i tokens som har en bestemt betydning, har en bestemt type! På den måde kan parseren oprette objekter som f. eks. elementer! Hvis parseren støder på et anførselstegn ( eller ) regnes det for en attribut derfor må et anførselstegn KUN anvendes på en bestemt måde i XML! Hvis parseren støder på tegnet & opfatter den det ALTID som starten på en reference til en entitet (mere herom senere)!

11 Velformet: Browsere som Internet Explorer eller Mozilla eller Netscape Navigator har en indbygget XML parser eller processor. Denne processor kontrollerer om XML dokumentet er velformet! Hvis det er velformet vises XML dokumentet i de fleste browsere med et default stylesheet. I Internet Explorer vises dokumentet med syntaks farver, + og knapper, indrykninger og dynamisk HTML! Man kan checke dette default stylesheet ved at skrive følgende i adresse linjen i Internet Explorer: res://msxml.dll/defaultss.xsl Man får så vist XSL typografi arket: Alle XML dokumenter (modsat HTML dokumenter!) SKAL være vel formede ellers kan de simpelt hen ikke læses eller parses! Minimumskravet til alle XML dokumenter det være sig skemaer eller stylesheets eller SOAP dokumenter - er: 1. Dokumentet skal være et gyldigt træ med en rod (et documentelement ) 2. Hvis dokumentet har en xml erklæring skal den stå som det allerførste tegn i dokumentet!

12 3. Et dokument må kun af een DOCTYPE eller dokument type (jvf senere om DTD og dokument typer) 4. Alle elementer skal indledes med et start mærke (fx <body>) OG afsluttes med et slut mærke (fx </body>) 5. Alle attributters værdier skal sættes i enkelte eller dobbelte anførselstegn 6. Det samme element må ikke have 2 attributter med samme navn 7. Kommentarer må ikke sættes inden i en tag eller mærke 8. Elementer skal være korrekt nestede ikke overlappe. Parseren opbygger en stack således at det sidste erklærede element også er det første der poppes fra stacken! Hvis vi skriver en slut tag skal den svare til det start mærke som ligger øverst i stakken! 9. Navne på elementer og attributter skal være et XML Name eller rettere i praksis et NCName (non colon name) dvs overholde det følgende: a. navnet må kun starte med et bogstav (fra et hvilket som helst alfabet!) eller en understregning (ikke et tal eller en bindestreg f. eks.) b. navnet må ikke indeholde tegnene:,, $, ; eller % eller : (et kolon må kun anvendes til namespaces) c. navnet må ikke indeholde noget mellemrum af nogen art (ej heller tabulator eller linjeskift!) d. navnet må ikke starte med tegnene xml eller XML eller en lignende kombination! 10. Følgende tegn må ALDRIG anvendes fordi de kan forveksles med mærker eller XML funktioner: a. < (i stedet skrives en entitet: <) b. > (i stedet: > ) c. (i stedet: &apos; ) d. (i stedet: " ) e. & (i stedet: & ) Hvis vi springer tilbage til eksempel.xml kan vi se at dette XML dokument overholder disse regler. Man kan chekke om et dokument er velformet på mange forskellige måder men at loade det i en browser som Mozilla eller Internet Explorer er det simpleste i første omgang. Vi vil nu ændre dokumentet og skabe nogle fejl for at illustrere hvad der IKKE er en gyldig XML fil: Hvis vi f. eks. retter slut mærket til </Htm> kommer denne fejlmelding:

13 Dette beviser at IE virkeligt parser dokumentet og kræver at dokumentet skal være velformet! Hvis vi ændrer div teksten til: Fås denne fejl melding i Mozilla: <div style="font-size:18pt;background-color:#dedede"> Dette er et HTML dokument som anvender > og < mærker. </div> Vi kan så escape de to tegn ved at skrive entiteterne: > og < og resultatet bliver:

14 Nu kan vi helt frit anvende de to symboler, fordi er escapede. Vi kan selv definere entiteter som vi skal se senere. Hvis vi skriver denne XML fil: <græsk_tekst>dette er en græsk tekst!</græsk_tekst> Får vi også en fejlmelding:

15 Læg mærke til at parseren (som egentligt en SAX parser) læser forfra - tegn for tegn - og stopper første gang den støder på et tegn som er et problem for den! Her er det tegnet æ som kommer efter <gr. Alle parsere (SAX parsere) læser på denne måde i princippet kan hele XML dokumentet faktisk læses hvis en evt. fejl først findes i det sidste tegn! Her er XML dokumentet faktisk meget velformet men det rummer tegn som IE ikke forstår! Dette kan vi udbedre ved at starte med en XML erklæring som det er sædvane (men ikke obligatorisk!) i XML dokumenter: <?xml version='1.0' encoding='iso '?> <græsk_tekst>dette er en græsk tekst!</græsk_tekst> Vi skal senere se på encoding som angiver det alfabet eller det tegn sæt (character set) eller den kodning som anvendes i dokumentet! I dette tilfælde: iso som betegner de tegn som anvendes i engelske og europæiske skrift sprog ( Latin-1 ) altså også danske bogstaver som æ, ø og å! Vi får nu:

16 Vi kan også skrive en XML fil således blot den er vel formet: <?xml version='1.0' encoding='iso '?> <γρ σκ_τεκστ> Dette er en γρ σκ tekst! </γρ σκ_τεκστ> Selv om man ikke er god til græsk kan det ses at start og slutmærket svarer til hinanden! Dokumentet er altså velformet! (En browser kan normalt ikke klare denne sammenblanding af flere alfabeter men dokumentet er stadig væk OK!). XML kan - fordi det altid anvender Unicode tegnsættet (som kan rumme 2 16 eller forskellige tegn!) - håndtere alle tegn fra levende og døde sprog - også f. eks. japanske eller kinesiske eller indiske skrifttegn (ideogrammer)! XML gemmes som standard eller default i Unicode med en encoding= UTF-8 hvor tegn gemmes som 1, 2, 3, 4, 5 eller 6 bytes (dvs et tegn fylder fra 8 til 48 bits afhængigt af om det er amerikansk a eller det kinesiske skrifttegn for stor som er en mand der spreder ben og arme!). Et script program der kan teste om et dokument er velformet: Vi kan skrive et lille script program som ser ud som dette:

17 Vi kan nu teste ved at indtaste forskellige eksempler på XML i tekst boksen og klikke på loadknappen. I det viste tilfælde bliver resultatet: Fejlen er at vi har anvendt to forskellige slags anførsels tegn i attributten! Scriptet kan skrives sådan her det sætter også et XML eksempel i boksen: <body> <form name="form" id="form"> <textarea rows="10" cols="60" name="xml" id="xml"> <?xml version='1.0' encoding='iso '?> <xml_dokument xmlns="uri:vel_formet_xml"> <notater datering=" ">dette er et notat. </notater> <notater datering=" '> </notater> </xml_dokument> </textarea> <input type="button" value="load" onclick="load_doc()" > </form> </body>

18 <script> function load_doc(){ var doc=new ActiveXObject("MSXML2.DOMDocument.4.0"); doc.loadxml(document.all("xml").value); var err=doc.parseerror; if(err.errorcode==0){ alert("dokumentet er velformet:\n\n"+doc.xml); } } else alert ("Fejl: "+err.reason+"\nlinje: "+err.line+"\nkolonne: "+err.linepos); </script> XML eksempel til illustration af generelle elementer: Vi kan skrive følgende XML fil: <?xml version='1.0' encoding='iso '?> <!-- Dette er et såkaldt data centrisk XML dokument --> <!DOCTYPE mine_ex_kærester [ <!ENTITY notat Dette er kun et foreløbigt notat! > ]> <mine_ex_kærester> <!-- foreløbig liste! --> <kæreste tlf=" "> <fornavn> Jette </fornavn> <efternavn> Petersen </efternavn> < > jettep@mail.dk </ > <_notat> Absolut en positiv oplevelse! &notat; </_notat> </kæreste> <kæreste tlf=" "> <fornavn> Lone </fornavn> <efternavn> Hansen </efternavn>

19 </kæreste> <_notat> <![CDATA[ En mindre heldi ting men hvor der handles, spildes der! <ordsprog> ]]> </_notat> </mine_ex_kærester> Når dette dokument vises i Internet Explorer ses: Kommentarer: Kommentaren (skrives som <!-- -->) FØR dokumentets rod vises ikke, men den anden kommentar vises OK. Elementerne FØR roden kaldes oftest for prologen. Her består prologen af en XML erklæring med såkaldte pseudo attributter og en DOCTYPE, som erklærer at dette dokument tilhører dokument

20 typen mine_ex_kærester! Man kan sige at vores XML applikation hedder mine_ex_kærester Markup Language! Lige som HTML tilhører DOCTYPE html! Vores DOCTYPE vises ikke fuldt ud i browseren men den erklærer blot en entitet ved at sætte den lig med en tekst! Når vi siden anvender &notat; indsætter vi entiteten! Dette svarer f. eks. til en #define i programmerings sproget C. Entiteter kan også bruges til at indsætte et kinesisk skrift tegn eller indholdet af en fil på 25 MegaByte! Vi skal vende tilbage til entiteters anvendelse i afsnittet om DTD skemaer! I det sidste _notat har vi omgivet tekstnoden med en såkaldt CDATA sektion. CDATA betyder Character Data og oprettelsen af en CDATA sektion betyder at vi frit kan skrive hvad som helst også bruge tegn som < eller. Det som står inden i en CDATA sektion bliver IKKE parset (ikke checket for velformethed!) af XML processoren! Det modsatte af CDATA er - i XML - #PCDATA som bruges om data eller tekst, som skal parses af XML processoren! CDATA bliver blot afleveret som en blok af uparsede, rå tegn! CDATA sektioner kan også anvendes f. eks. til programmerings kode eller indlagte eksempler på HTML eller XML. Som det ses gemmes og vises data nøjagtigt som de skrives med indrykninger og tomme linjer! I HTML ville dette svare til at vi brugte elementet <pre>! Mellemrum, tabulator og linjeskift:

21 Hvis vi laver et mellemrum eller et linjeskift mellem to elementer bliver det normalt ignoreret (fjernet) af en XML processor! Dette svarer helt til hvad en HTML parser gør! Derfor fjernes alle linjeskift f. eks. i en HTML fil som vises i en browser! Selve tekstindholdet (tekst noden) bliver derimod gemt som det er af parseren! Hvis vi laver et mellemrum i en attribut er mellemrummet en del af attribut værdien. Også hvis vi laver 27 mellemrum ved siden af hinanden! Det samme gælder elementer. Det som står mellem start og slut mærket er en sekvens af tegn koder (der egentligt gemmes som tal eller bits) også hvis de består af mellemrum! F. eks. kan vi skrive et element således: <kæreste tlf=" "> <fornavn>lone</fornavn> <efternavn>hansen</efternavn> < > lonehansen@get2net.dk </ > <_notat> <![CDATA[ En "mindre heldi'" ting - men 'hvor der handles, spildes der'! <ordsprog> ]]> </_notat> </kæreste> Her har vi rent faktisk måske uden at vi tænker over det! indført linjeskift i elementerne < > og <_notat>! Vi har indrykket en række data efter <kæreste>! Vi har også indført et linjeskift efter <kæreste<! Den producerede tekst fil ser derfor nogenlunde sådan ud:

22 Vi kan f. eks. se at der før CDATA sektionen reelt er to linjeskift og at CDATA sektionen faktisk er længere ude til venstre end adressen som er indrykket med 4 mellemrum i forhold til fornavn og efternavn! XML processoren bevarer altså mellemrum o.s.v. inden i elementerne. Dette er vigtigt når vi skal transformere XML dokumenter til f. eks. tekst dokumenter! I XSLT er der funktioner som kan ændre denne default fremgangsmåde nemlig: preserve-space elements= * strip-space elements= * Den første bevarer space i alle elementer, den anden fjerner space i alle elementer! Vi skal senere se på disse funktioner. Producenter og forbrugere af XML dokumenter: Man kan skelne mellem XML dokumenter der er produceret af mennesker i hånden og dokumenter som er produceret af et software program! Et program kan let producere meget store og meget indviklede XML dokumenter på kort tid! På samme måde er der stor forskel på om modtageren eller forbrugeren af et dokument er en maskine (et program) eller et levende menneske! XML dokumenter der skal kunne læses af almindelige mennesker skal være mere overskuelige for at være til nogen hjælp. Men stadig væk er den enorme fordel ved XML at disse dokumenter altid kan læses af almindelige dødelige i modsætning til andre formater! Mange XML dokumenter bliver kun brugt som formidling mellem software programmer! Disse dokumenter har altså en ganske bestemt funktion og er ikke primært beregnet til at give informationer til andre! XML dokumenter bliver f. eks. produceret af et klient program og sendt til en XML server. Et sådant XML dokument bliver aldrig nogen sinde gemt som en fast fil. Det eksisterer kun virtuelt i en hukommelse i RAM. Det har måske en levetid på et halvt sekund! Gnumeric regneark til Linux systemet producerer hele tiden mængder af XML data for at kunne holde styr på cellerne i regnearket! Et eksempel på et dokument som er skrevet af et program er følgende fil liste over filer i C drevet! Det er let at producere et sådant meget langt dokument med f. eks. C# som det er gjort her! Hvis et almindeligt menneske skulle have skrevet det var det nok blevet skrevet anderledes. Stadig væk viser et sådant dokument styrken ved XML at det kan gemme detaljerede data meget struktureret:

23 To typer af XML dokumenter: Der findes især to typer af XML filer nemlig datacentriske og narrative eller fortællende dokumenter. Data centriske XML dokumenter: Eksemplet ovenfor er et datacentrisk dokument lige som f. eks. en lagerliste over bøger hos en boghandel. Disse dokumenter minder om en database tabel. Der oprettes måske flere tusind poster med enslydende felter. Et andet eksempel på et data centrisk XML dokument kunne være denne telefonliste, der kunne omfatte flere hundrede ensartede poster:

24 XML dokumentet svarer nogenlunde til denne tabel - her vises kun en post som eksempel: type fornavn efternavn telefon privat Eydna Hansen Vi kan også sammenligne med de såkaldte komma separerede filer som i gamle dage og faktisk stadig er brugt til at gemme data i: Cecilie,Hansen, Rosaline,Jensen, Ole,Nyborg, osv. Det er klart at disse komma separerede filer har store begrænsninger! Links eller nøgler kan ikke skrives. Der er ingen kontrol af at data skrives korrekt. Hvis en database bruger sådanne filer og det kan alle database systemer kan der let opstå fejl. Her er et dokument format som XML klart overlegent!

25 Narrative eller fortællende XML dokumenter: Narrative dokumenter HTML tilhører stort set denne type er ikke så strukturerede. Narrative XML dokumenter er rapporter, artikler, bøger, alle slags almindelige skriftlige oplæg! SGML blev i sin tid skabt for sådanne almindelige dokumenter. Her kan forskellige elementer blandes frit også selv dokumentet har et skema som det skal valideres imod. Et eksempel på et narrativt eller fortællende dokument kunne være dette: XML dokumentet er her stylet med et typografi ark eller stylesheet sådan at person navne vises med rødt, årstal med blåt og sted navne med grønt o.s.v. Den afgørende fordel ved at anvende XML i narrative dokumenter er, at man kan søge i teksten på en effektiv måde fordi data er typede informationer om steder ligger i et element <sted> (helt modsat end i HTML)! På den måde kan man finde alle personer eller alle årstal! XML er et langt bedre format for søgemaskiner (robotter) på Internettet end HTML. En HTML tekst med forskellige oplysninger skal screen scrapes dvs. man skal ind og søge i selve teksten f. eks. med en tekst behandling! Selve XML filen er skrevet således:

26 <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="narrativ.css"?> <!DOCTYPE beretning SYSTEM "narrativ.dtd"> <beretning> <rubrik>noget om <sted>dk</sted> i aaret <tid>2003</tid>.</rubrik> I <sted>danmark</sted> er der mange steder f.eks. <sted>jylland</sted> og mange <begreb>kirker</begreb>. Tiden er nu i <tid>2003</tid>. I dette land bor <person>jens Jensen</person> og <person>rosalina Hansen</person>. <rubrik>noget om <person>elizabeth</person> og <sted>england</sted> i aaret <tid>2003</tid>.</rubrik> I <sted>storbritannien</sted> er der mange byer og mange <begreb>pubber</begreb>. Vi er nu i <tid>2003</tid>. <note><rubrik>dette er en rubrik i en note</rubrik>dette er en note om landet England. Dette er en note om landet England. Dette er en note om landet England. Dette er en note om landet England. Dette er en note om landet England. </note> I dette land bor <person>john</person> og <person>elizabeth Knight</person>, som begge arbejder inden for <begreb>turist industrien</begreb>. </beretning> Vi skal siden vende tilbage til narrative dokumenter og til hvordan man kan skrive XML skemaer til dem. Ligesom i HTML er der grundlæggende det problem at de forskellige elementer her f. eks. <note> eller <person> - kan forekomme i helt forskellig orden og i forskellige kontekster! XML dokumentets struktur: Ideen i XML er at det samme content eller indhold kan kodes på forskellig måde mere eller mindre hensigtsmæssigt! Formen er noget andet en indholdet! Hvis kodningen foretages af software kan den gøres meget kompliceret hvis den skal gennemføres af rigtige mennesker sætter det selvfølgeligt nogle begrænsninger! Vi skal se på et lille eksempel på denne problematik her. Den samme information kan kodes på to forskellige måder her er det eksempel fra SVG Scalable Vector Graphics, et XML sprog: <polygon points= 10, 78 33,66 77,88 /> <polygon> </polygon> <point x= 10 y= 78 /> <point x= 33 y= 66 /> <point x= 77 y= 88 /> Tekst eller informations indholdet er præcist det samme men ifølge de flestes mening er den sidste løsning bedre fordi den klart viser hvad de forskellige tal er for en type! I det første eksempel er der principielt kun tale om en bunke ustrukturerede tal!

27 At hente XML fra en database tabel: Vi skal også se hvordan man på en ret enkel måde kan hente XML dokumenter fra database tabeller. Hvis man har databaser kan man på den måde let få adgang til XML dokumenter som man så kan arbejde med. Vores metode bygger på et <script> i en HTML fil. En sådant script her skrevet i Javascript kan kalde objekter og funktioner og etablere forbindelse med en database. Nedenstående eksempel forudsætter at man har installeret en database og registreret den som en system DNS. Her er brugt en MS Access database boghandel og tabellen bog : <body> <div id="tekst"></div> <script> function db() { doc=new ActiveXObject("Msxml2.DOMDocument.4.0"); connection = new ActiveXObject("ADODB.Connection"); connection.open("boghandel","",""); recordset = new ActiveXObject("ADODB.Recordset"); recordset.open ("select * from bog", connection); recordset.save (doc, 1); alert(doc.firstchild.lastchild.xml); tekst.innertext=doc.xml; recordset.close(); connection.close(); } db(); </script> </body> Funktionen db() kaldes og etablerer en forbindelse til databasen. En database kan kun bruges hvis der kaldes op til den med en connection! Vi bruger en SQL sætning som betyder at vi vil have alle poster i tabellen bog. Derefter udfører vi det trick at vi gemmer det hentede recordset i et XML DOM dokument! På denne måde får vi gratis skabt et XML dokument med data fra tabellen! Parameteren 1 i save metoden betyder adpersistxml altså at vi ønsker at gemme i XML formatet!

28 Vi kan her se XDR skemaet til XML dokumentet. Vi kan også se at en post eller række er kodet som en row med attributter! Dette sker automatisk!

29 Vi kunne på samme måde koble os op på MS databasen Northwind som oftest findes i Windows. Her får vi gratis XML data som det ses her fra tabellen Kunder: Binære data i XML dokumenter: Vi kan også med den viste metode få kodet binære data ind i et XML dokument. Eksemplet her bygger på at vi har oprettet en Access database med en tabel med to felter: id og objekt. I feltet objekt gemmer vi så binære objekter her JPG billeder! Vi kunne også have gemt Word dokumenter! Vi kan så koble os op på denne database som også skal registreres på maskinen fordi vi bruger ODBC få vist og kodet vores binære data som binhex kode. Vi skal siden vende tilbage til eksemplet! Binære filer som JPG billeder kommer til at fylde rigtigt meget hvis de skal sendes inden i et XML dokument! I eksemplet nedenfor er dokumentet gemt som en selvstændig XML fil for bedre at kunne overskue resultatet!: <body> <div id="tekst"></div> <script> function db() { doc=new ActiveXObject("Msxml2.DOMDocument.4.0"); connection = new ActiveXObject("ADODB.Connection"); connection.open("objekter","",""); recordset = new ActiveXObject("ADODB.Recordset");

30 } recordset.open ("select * from objekter", connection); recordset.save (doc, 1); tekst.innertext=doc.xml; recordset.close(); connection.close(); db(); </script> </body> Vi kan se at systemet selv finder ud af at data typen for kolonnen objekt er bin.hex fordi datatypen for feltet i database tabellens kolonne er binært! Vi skal i forbindelse med XSD skemaer igen se på datatypen bin.hex. I attributten maxlength kan vi se hvor mange bytes disse JPG filer kommer til at fylde! En bin hex kodning vil sige at hver byte i JPG filen oversættes til to bytes i XML dokumentet! De binære hexadecimale tal går fra 0 til A, B, C, D, E og F (= 15). I dette tilfælde fylder XML dokumentet bytes! Et almindeligt JPG billede 30 eller bytes i sig selv! Konfigurations filer et eksempel på et XML dokument: Det er meget almindeligt at skrive konfigurations filer som definerer en række parametre for hvordan et program skal opstarte. I.NET skrives disse filer altid i XML. Hvis programmet hedder

31 mitprogram.exe hedder den tilhørende konfigurationsfil mitprogram.config! Vi skal dog her se på et eksempel der ikke har noget at gøre med.net: Vi kan illustrere brugen af XML til konfigurations filer på denne måde: Vores mitprogram.xml ser således ud og definerer hvordan et vindue skal se ud: Vi kan nu udnytte den konfig fil i dette script som åbner et vindue: <script> var doc=new ActiveXObject("Msxml2.DOMDocument.4.0"); doc.load("c:/xmlkursus/xml_gen/mitprogram.xml"); var t=doc.firstchild.lastchild.text; var l=doc.firstchild.childnodes(0).text; var tp=doc.firstchild.childnodes(1).text; var w=doc.firstchild.childnodes(2).text; var h=doc.firstchild.childnodes(3).text; //var scr=doc.firstchild.childnodes(7).text; var b=doc.firstchild.childnodes(8).text;

32 var w=window.open("","","left="+l+",top="+tp+",toolbar=no,menubar=no,scrollbars=yes,status=yes,width="+w+",height= "+h+""); w.document.write("<h2><font color="+b+">"+t+"</h2>"); w.status="data fra Konfigurations XML Fil."; </script> Dette script henter så alle værdierne fra XML filen og indsætter dem i de parametre som findes til metoden window.open()! Læg også mærke til at vi lægger tekst ind i statuslinjen! Vi skal siden vende tilbage til denne form for scripting! På findes en del materiale om scripting! Typer af noder i et XML dokument: Alle ting eller objekter i et XML dokument er noder! Alt er en node et element, en attribut en tekst! Som et eksempel kan vi skrive dette dokument som stort set illustrerer alle XMLs node typer: <?xml version='1.0' encoding='iso '?> <!-- Dette er et demo dokument til at vise node typer i XML. --> <!DOCTYPE dokument [ <!ENTITY note "en note."> ]> <?instruktion dette er en processing instruction?> <dokument xmlns="uri:dokument"> <rubrik> Dette er en overskrift. </rubrik> <afsnit>dette er et afsnit. Dette er &note;</afsnit> <![CDATA[ public static void Main(){

33 if (x<y){} // } ]]> </dokument> Hvis dette dokument læses af en SAX parser (.NET) kan vi få udskrevet alle de objekter eller noder som parseren støder på punkt for punkt: Vi kan se at et namespace er en selvstændig node! En reference til en defineret entitet er også en selvstændig node her f. eks. anvendt inden i en attribut! Mellemrum, linjeskift og tabulator (whitespace) er en node! Vi kan også se at parseren skelner mellem et start mærke og et slutmærke. Et start mærke er en selvstændig node. Fordi alt hvad der er anbragt inden i < og > er en node der så kan indeholde andre sub noder! Teksten til noden er child af elementet eller attributten og en selvstændig node! XML parsere:

34 Mange forskellige programmer har i dag en indbygget parser. Det vil sige at hvis man f. eks. har installeret en af de almindelige browsere som Internet Explorer, Netscape eller Mozilla har man også samtidigt installeret en XML parser! På samme måde bruger f. eks. Microsoft Office pakken også en XML parser. Hvis man har downloadet XML editorer som XMLSpy eller XMLWriter som kan downloades i en prøve version har man også fået sig en XML parser. Dette gælder også hvis man har downloadet C# editoren (og XML editoren) SharpDevelop. Alle disse parsere kan så være mere eller mindre tilgængelige for brugeren! Der eksisterer i dag en mængde forskellige XML parsere - programmer eller klasser som kan læse og forstå XML og som kender reglerne for et gyldigt XML dokument. Nogle parsere kan både køre på Windows, Unix og Linux f.eks. Nogle kan kun køre på et bestemt operativ system. Men p.g.a. W3C standarderne er alle parsere nogenlunde ens i strukturen! Her skal nævnes nogle af de muligheder som kan downloades fra Internettet: MSXML: er Microsofts XML parser. De fleste eksempler i dette kursus tager udgangspunkt i MSXML som findes i mange udgaver. Internet Explorer 6.0 har indbygget denne parser dog kun i den næst sidste version nemlig 3.0! Et XML dokument med adskillige fejl: I Internet Explorer vises dette hvis vi søger at loade filen:

35 SAXON: SAXON parseren som er skrevet af Michael H. Kay kan downloades fra adressen Først og fremmest downloades saxon.jar som er et bibliotek af Java klasser til XML. SAXON er primært beregnet til at style eller transformere XML dokumenter. For at kunne bruge disse klasser skal man altså have installeret en udgave af Java (Java Virtual Machine) på maskinen. Forskellige udgaver af Java kan downloades fra mange steder f. eks. fra Den store fordel ved at bruge Java klasser er at de fungerer på alle maskiner Windows, Unix, Linux, Mac! Det er programmer som er platforms uafhængige. Med i pakken er også en meget detaljeret dokumentation om XML, XPATH og XSL, som under alle omstændigheder er meget læseværdig! Med i materialet er også bible.xsl og man kan downloade hele Bibelen til visning med dette stylesheet! Med SAXON følger også en stribe færdige programmer.

36 Vi skal her kun se på hvordan man helt konkret kan bruge SAXON parseren. Som et konkret eksempel vælger vi XSL transformatoren i SAXON. Vi kan kalde processoren på denne måde på en DOS linje i en prompt: java -classpath.;saxon.jar com.icl.saxon.stylesheet -o output.html othello.xml flexnumber.xsl Java klasser eller programmer kaldes altid med java som er Java fortolkeren! En klasse kan kun køre hvis den fortolkes af java.exe med mindre den er en applet som vi vil se eksempler på. Vi skal lidt senere se på hvordan man kan anvende Java klasser mere generelt! Ovenstående forudsætter at saxon.jar biblioteket ligger i den samme mappe! Ellers kan java fortolkeren ikke finde biblioteket. Vi kalder altså en konkret Java klasse ved navn StyleSheet som ligger i det anførte namespace eller package! Der kan anføres forskellige flag - -o angiver output filen. a bruges for at angive at stylesheetet er defineret i XML dokumentet lige som pi i Microsoft processoren. Parametre kan opregnes til sidst som vist. Dette kan se besværligt ud men det hele kan gøres nemmere hvis man på Windows skriver f. eks. en bat fil med dette indhold (kommandoen) gemt som f. eks. style.bat! Man kan også anvende SAXON i scripts som vi skal se. Som et meget lille eksempel på hvordan man kan bruge SAXON parseren kan vi se på denne Java klasse: import com.icl.saxon.aelfred.*; public class Parser { public static void main(string args[]) { SAXDriver sax=new SAXDriver(); try { sax.parse(args[0]); } catch (Exception e){system.out.print(e.tostring());} } } Denne lille klasse kan så parse XML dokumenter og kontrollere om de er vel formede! Den henter et XML dokument fra DOS linjen på denne måde: java -classpath.;saxon.jar Parser telefonliste.xml Vi kunne have gjort klassen lidt mere informativ ved at få udskrevet linje nummer og kolonne for eventuelle fejl! Men alligevel fungerer denne lille Java klasse som en OK XML parser! SAXDriver er en såkaldt SAX2 parser som vi skal se på i afsnittet om SAX.

37 Expat: er en XML parser skrevet i programmerings sproget C. Den skal også programmeres i C. Den er en SAX parser skrevet af James Clark. Den kan altså kun fungere hvis der skrives event_handlere til parseren som man gør i SAX. Den kan frit downloades fra Når filerne er udpakket fås et færdigt program xmlwf.exe som kan checke om et XML dokument er velformet vi bruger her det fejlagtige eksempel fra før: Der findes en meget detaljeret vejledning i hvordan man kan skrive C kode til denne parser. Expat kan bruges sammen med f. eks. Borlands C++ Builder eller andre builder programmer til C eller C++. Expat kan downloades i forskellige udgaver og kan køre på både Windows og UNIX og Linux! Xerces: er nok en af de mest anerkendte XML parsere som primært er skrevet af Java folk til programmering i Java (Xerces-j) Xerces parseren kan dog også fås i en C/C++ udgave (Xerces-c). Den har lige som Expat den fordel at den kan anvendes til forskellige operativ systemer Windows, Mac, UNIX eller Linux! Xerces kan downloades fra Der er en meget detaljeret vejledning i hvordan man skriver Java kode til de hundreder af Java klasser som følger med! Xerces er en fri, open tool parser som kan klare næsten enhver opgave! Med Xerces kan man også (i C udgaven til Windows) få en række færdige programmer som parser XML dokumenter på Windows platformen: 1. SAXCount.exe som er en parser 2. DOMPrint.exe som parser og udskriver et XML dokument 3. SAXPrint.exe som gør noget tilsvarende 4. Redirect.exe som kalder et externt DTD og validerer 5. enumval.exe 6. stdinparse.exe

38 Med flere! Disse programmer kan også validere hvis de kaldes med en option v. Man kan altså let kontrollere og validere XML dokumenter med disse indbyggede programmer! Resultatet af en SAXCount kan være: DOMPrint: Programmet enumval.exe, som opregner XML dokumentets elementer:

39 Vi skal siden se på nogle eksempler på hvordan man kan bruge de mange - forskellige Xerces parsere. XML parsere fra Microsoft.NET: Man kan downloade.net platformen fra og installere det på en Windows maskine..net fylder trods alt - kun ca. 20 MegaBytes..NET er et ekstra lag (styre system) som lægges oven i Windows styresystemet. I.NET får man adgang til en mængde færdige programmer eller klasser og det er muligt at skrive programmer i en række forskellige sprog bl. a. CSharp, Visual Basic og JScript. Der findes en række forskellige parsere i.net. Den - måske - vigtigste af dem er XmlTextReader som grundlæggende er en SAX parser blot lidt mere brugervenlig! Vi skal senere se på XmlTextReader. XML parser fra Oracle: Fra kan frit downloades Oracles XML parser, en række supplerende værktøjer og en masse information og vejledning.

40 Parseren kan programmeres i Java eller i C eller C++. XML parser fra Chilkat Software: Denne parser kan også frit downloades fra adressen: hvor den findes i flere forskellige udgaver bl. a. en ActiveX Komponent til ASP og scripts. Parseren er lille, hurtig og kompakt. Den har mange specielle funktioner og er brugervenlig! Den er i mange henseender et gyldigt alternativ til de store. Ulempen kan være at denne parser i nogle tilfælde bruger sine egne metode navne osv. Det kan forvirre i starten. Men stort set er properties og metoder de samme i alle XML parsere! Denne parser har nogle specielle metoder der kan søge, sortere, kode og komprimere XML dokumenter! Et eksempel på et script der anvender Chilkat parseren i ASP versionen ser sådan ud: <script> function asp_xml(){ try { //Opret et ASP XML parser objekt: var xml = new ActiveXObject("AspXml.AspXml"); xml.loadxmlfile("c:/xmlkursus/asp/telefonliste.xml"); alert(xml.getxml()); //document.write(xml.getxml()); //tree walking: antal = xml.numchildren; var i = 0; var s=""; var node; var n; while (i < antal){ node = xml.getchild(i); //ekstra attr: node.addattribute ("id_nummer", i); n = node.firstchild(); s+="\n"+n.content; n = n.nextsibling(); s+="\n "+n.content; n = n.nextsibling(); n.addattribute ("privat", "true"); s+="\n "+n.content; i++;

41 } alert(xml.getxml()); //alert(s); //document.write("<pre>"+s+"</pre>"); } catch(e){ alert(e.description) ;} } xml(); </script> At sortere kan gennemføres meget brugervenligt således: xml.loadxmlfile("c:/xmlkursus/asp/telefonliste.xml"); xml.sortrecordsbycontent("efternavn",true); Der medfølger en del kode eksempler på forskellige løsninger i XML. En primitiv script parser: Nedenstående er et eksempel på en meget primitiv og ufuldstændig parser skrevet i script kode! Det skal straks siges at der faktisk findes rigtige XML parsere skrevet i script kode de kan også findes på Internettet! Eksemplet skal kun illustrere hvad det egentligt er parseren gør. Men det er vigtigt at forstå at dette eksempel blot kan udbygges mere og mere og til sidst ender vi med en rigtig parser. Det er vigtigt at erindre sig at forskellen på f. eks. Notesblok og en parser er, at parseren kontrollerer de tegn den læser og opretter en data struktur mens den læser teksten igennem! Notesblok læser blot tegn for tegn og viser resultatet! 1. Parseren kontrollerer om visse ugyldige tegn anvendes på forskellige steder dels i tekst noder dels i element navne f. eks. at et element navn ikke må indeholde et < eller et mellemrum! 2. Parseren opdeler XML dokumentet i dele. At parse er at dele eller opdele helt bogstaveligt! Denne parser læser som alle parsere eller XML readere simpelthen teksten tegn for tegn. Her er det implementeret i en løkke! Vi vil kun se på den grundlæggende struktur i parser eksemplet i nedenstående eksempel er nogle detaljer klippet fra! <script> //kan kun klare dette slags hierarki!: parse("<data><navn><fornavn>rosa & Lina</fornavn></navn></data>");

42 function parse(x) { start=0; slut=0; navn=""; tekster=new Array(); index=0; tagnavne=new Array(); tagindex=0; niveau=0; var xml=new String(x); for(i=0;i<xml.length;i++) { c=xml.substr(i,1); if(c=='<'){ start=start +1; if(navn.length>0) { alert("fundet #PCDATA: "+navn); if(navn.indexof('<')!=-1) {fejl1();return;} if(navn.indexof('&')!=-1) {fejl1();return;} if(navn.indexof('>')!=-1) {fejl1();return;} if(navn.indexof('"')!=-1) {fejl1();return;} tekster[index]=navn; index=index+1; navn=""; } } else if (c!='>'){ navn+=c; } //parseren læser tegnet > : else if(c=='>'){ alert("fundet XML tag navn: "+navn); if(navn.substr(0,1)=='/'){ niveau=niveau-1; } else niveau=niveau+1; alert("dybde: "+niveau); //ulovligheder i tagname flere kunne tilføjes her: if(navn.indexof(' ')!=-1) fejl(); if(navn.substr(0,1)=='-') fejl(); if(navn.substr(0,1)=='.') fejl(); //starter med plads 0: tagnavne[tagindex]=navn; tagindex=tagindex+1; navn=""; slut=slut+1; }

43 }//slut med for loop! //er dokumentet velformet? if (start==slut)alert("gyldigt XML dokument: < >"); if (start!=slut)alert("ugyldigt XML dokument: < >"); //vis den ene data struktur: tekstnoder: for(m=0;m<index;m++){ alert("tekster: "+tekster[m]); } } } </script> Dette script eksempel fungerer rent faktisk neb kun på begrænsede XML dokumenter som vist i eksemplet: Parseren kan holde rede på i hvilken dybde i træet vi befinder os: Parseren kan skelne mellem tekstnoder og tag navne og opbygger en liste over dels element navne dels tekst noder: Den kontrollerer tekstnoderne for ugyldige tegn:

44 Den tæller simpelt hen hvor mange < tegn og hvor mange > tegn der er i dokumentet og melder fejl hvis der ikke er lige mange! Dette er selvfølgeligt IKKE nogen fuld kontrol af dokumentet kun et nemt eksempel! Dette eksempel viser også hvad der er typisk for en sådan SAX parser: at den simpelt hen læser tegn for tegn! Parseren foretager også en kontrol af at elementer åbnes og lukkes på den korrekte måde: Vi kan indføre en bevidst fejl sådan her: parse("<data><navn><.fornavn>rosa & Lina</fornavn></navn></data>"); Et element navn må i XML ikke starte med et punktum: Parseren kan også klare mixed content XML dokumenter f. eks. denne type: parse("<data>data<navn>navn<fornavn>rosa & Lina</fornavn></navn></data>"); Den opretter korrekt en data struktur over alle 3 tekstnoder i dokumentet.

45 Om brug af Java klasser (programmer): I dette materiale er der nogle steder vist eksempler fra programmering i Java. Java har spillet en meget stor rolle i XML fra starten. W3C Konsortiet har udgivet officielle language bindings for Java men ikke for andre sprog (bortset fra Java script ECMA script)! SAX som vi skal se senere blev opfundet til Java. Java spiller en stor rolle i programmering af XML dokumenter. For mange vil Java være en fremmed verden! Vi skal derfor her se på hvordan man kan anvende Java uden at have særligt meget forstand på Java! Applets: For det første anvendes Java i form af Java applets som er en del af en web side eller HTML side. Disse applets kan anvendes af alle de fungerer blot som komponenter når man åbner web siden og kræver sådan set ingen forudsætninger og de kræver heller ikke at man har installeret Java eller Java klasser på sin maskine! Applets fungerer uanset styresystemet Windows, Unix, Linux eller Mac og helt uafhængigt af hvilke programmer man har installeret på maskinen! Applets er virkeligt portable uafhængige. Vi skal senere se eksempler på applets der kan bruges til XML. Java klasser i øvrigt: For det andet kan man anvende færdige Java klasser programmer. En Java klasse er ikke et program på samme måde som f. eks. et Windows program (et.exe program). Java klassen er kompileret byte kode som skal køres gennem en Java fortolker (java.exe) og oversættes til f. eks. Windows kode! En forudsætning for at kunne køre et Java program en Java klasse er at man har installeret en Java fortolker d.v.s. i praksis Java Virtual Machine på maskinen! Java kan downloades i forskellige udgaver - mange steder på Internettet f. eks. fra Når man har installeret Java installeres det i en bestemt mappe. Det er vigtigt at systemet kan finde java.exe! Systemet skal altså have en path til den mappe hvor java.exe ligger! Man kan teste om dette virker ved at skrive java på en DOS kommando prompt et DOS vindue.

46 Java klasser køres derefter nemmest ved at man på Windows skriver en.bat fil med kommandoen der starter Java klassen. Fra denne hjemmeside kan man downloade en lille SAX parser som også validerer om XML dokumentet er gyldigt i forhold til et XSD skema! De filer som skal downloades er: 1. xercesimpl.jar (indeholder Xerces XML klasserne) 2. SAXParser.class (en Java SAX parser) 3. H.class (en event handler klasse som parseren skal bruge) 4. eks8.xml (et XML dokument) 5. skema8.xsd (et XSD skema) 6. java_parser.bat (den.bat fil som automatisk kører Java parseren) Hvis alle disse filer ligger i samme mappe kan man blot dobbelt klikke på.bat filen i Windows Stifinder og køre programmet! Programmet producerer en tekst fil med resultater fra læsningen af XML dokumentet. Indholdet af.bat filen er denne kommando: java -classpath.;xercesimpl.jar;c:\java\java\lib\classes.zip SAXParser eks8.xml > saxparser.txt Dette kan forklares på denne måde: 1. Output lægges over i saxparser.txt i samme mappe 2. Parseren læser eks8.xml - som har en reference til et skema (som derfor også automatisk - læses af parseren) 3. Vi sætter en classpath d.v.s. vi angiver hvor Java klasser befinder sig så systemet kan finde dem! Java klasserne ligger i: a. punktum (nuværende mappe) b. i biblioteket xercesimpl.jar c. i biblioteket classes.zip i den nævnte mappe (i dette tilfælde!) 4. Vi kalder klassen SAXParser med java (eller java.exe) og et.xml dokument som parameter På denne måde kan kaldes alle mulige Java klasser programmer på en nem og sikker måde! Resultaet af at køre denne parser er nogenlunde dette:

47 Hvis der er skema fejl altså hvis XML dokumentet er ugyldigt eller hvis XML dokumentet ikke er velformet kommer der en fejlmelding Encoding: Vi har allerede set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument med en XML erklæring og en bestemt encoding! Dette er i al fald nødvendigt hvis der anvendes tegn som ikke er ASCII tegn ( engelske tegn)! Et eksempel på et dokument uden en xml erklæring: <data>i dette år besøges mange ærtesteder!</data> Dette dokument et helt gyldigt XML - kan oftest ikke vises i en browser der er et ugyldigt tegn i position 15! Dette skyldes ikke at XML eller Unicode ikke forstår tegnet å - men at dokumentet bliver kodet forkert. Unicode og XML forstår omkring forskellige tegn altså også Æ! Hvis vi ændrer dokumentet og skriver en eksplicit encoding bliver det vist OK:

48 Men de forskellige XML parsere forstår kun et begrænset antal kodninger! F. eks. findes en forbedret version af ISO som hedder ISO men den forstås ikke af f. eks. Internet Explorer selv om den er en officiel anerkendt encoding! Et tegn sæt (character set): Et tegn sæt er en række af gyldige tegn som er definerede i det konkrete tegnsæt! Et tegn kan være et bogstav, et symbol eller et kinesisk skrifttegn! Unicode definerer flere end forskellige tegn og de er alle gyldige i et XML dokument! Det er ikke sikkert at de kan skrives i Notesblok men de er gyldige tegn i et XML dokument! Alle tegn har en bestemt tal kodning et såkaldt kode punkt! De første kode punkter er nummer 0 til og med nummer 127. Bogstavet a har kodepunktet 97 i ALLE tegnsæt! Uanset hvordan vi sætter vores encoding i xml erklæringen betyder 97 altid det samme! Men for værdierne over 127 er de forskellige tegnsæt mere eller mindre forskellige! Dvs. nummer kode punkt er ikke altid det samme tegn det afhænger af tegnsættet og vores encoding! UTF-8 og UTF-16 (Unicode): Hvis der IKKE skrives en encoding erklæring bliver XML dokumentet gemt automatisk i UTF-8 som er en speciel kodning hvor hvert tegn oversættes til mellem 1 og 6 bytes afhængigt af om det er et kinesisk skrifttegn eller et engelsk a! UTF-8 koder altså med et variabelt antal bytes for hvert tegn! UTF-16 som ofte kaldes Unicode koder derimod med et fast antal bytes og bits: Hvert eneste tegn oversættes til nøjagtigt 2 bytes eller 16 bits altid! UTF-16 filer vil derfor ofte fylde mere end UTF-8 eller ISO filer! Hvis teksten kun (eller mest) indeholder engelske tegn bliver filen dobbelt så stor! Dette er baggrunden for at man opfandt kodningen UTF-8! Man kan have problemer med disse formater fordi nogle metoder f. eks. i MSXML automatisk koder i UTF-16 selv om vi har bedt om noget andet! I så fald får vi en fejl melding i browseren

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding: Vi har tidligere set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument

Læs mere

DTD Document Type Definition:

DTD Document Type Definition: DTD Document Type Definition:...1 Sekvens:...2 Validering:...3 Attributter i DTD:...8 In-line DTD skemaer:...10 Entiteter:...11 Entiteter som værdier i attributter:...13 DTD skemaer kun med entiteter:...14

Læs mere

Servere har ikke kun noget at gøre med et lokalnet eller med Internettet. Ethvert program som fungerer som en lytter er en server!

Servere har ikke kun noget at gøre med et lokalnet eller med Internettet. Ethvert program som fungerer som en lytter er en server! XML og server klient programmer:...1 Hvad er en server?...1 Fordelene ved en XML server:...2 Eksempel: En telefon XML server:...2 XML server der trækker på en database:...7 Direkte adgang til databasens

Læs mere

Namespaces. Vi kan kvalificere elementer på denne måde: <?xml version="1.0" encoding="iso-8859-1"?>

Namespaces. Vi kan kvalificere elementer på denne måde: <?xml version=1.0 encoding=iso-8859-1?> Namespaces...1 Default namespace:...6 Præfiks:...7 To slags navne i XML:...11 Standard namespaces:...14 RDF Resource Description Framework:...18 Attributter:...19 DTD skemaer og namespaces:...21 Namespaces.

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

DOM Document Object Model:

DOM Document Object Model: DOM Document Object Model:...1 Typer af noder i træet:...3 Reading:...4 document:...6 element:...7 attributter:...12 parser fejl:...13 XPATH:...13 Stier i XPATH:...13 Prædikater:...14 Operatorer:...15

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML....1 Funktioner:...2 Skrive XML dokumenter med SAX writer:...4 SAX metoder i Visual Basic:...5 error handler:...6 En content handler:...7 At validere et XML dokument med SAX:...13

Læs mere

Opstart og adgange til Ejersiden

Opstart og adgange til Ejersiden Opstart og adgange til Ejersiden Indhold Internet Explorer og andre browsere til Ejersiden... 1 Login til Ejersiden... 2 Første login til Ejersiden... 2 Ændring af kodeord ved første login... 3 Bestilling

Læs mere

java -classpath.;xercesimpl.jar;xercessamples.jar;c:\java\java\lib\classes.zip sax.counter -v -s -f -t telefonliste.xml

java -classpath.;xercesimpl.jar;xercessamples.jar;c:\java\java\lib\classes.zip sax.counter -v -s -f -t telefonliste.xml Xerces parseren....1 sax.counter:...1 sax.documenttracer:...2 sax.writer:...3 dom.getelementsbytagname:...4 dom.writer:...4 dom.asbuilder:...5 XMLGrammarBuilder:...6 PSVIParser:...7 Xerces parseren. Vi

Læs mere

Tastevejledning Windows XP

Tastevejledning Windows XP Tastevejledning Windows XP Tastevejledningen dækker den danske udgave af Windows XP. Der er taget udgangspunkt i en standard installation, hvor der ikke er foretaget tilpasninger i skærmopsætning, valg

Læs mere

Eksempel på transformation: XML -> RTF dokument:

Eksempel på transformation: XML -> RTF dokument: Eksempel på transformation: XML -> RTF dokument: RTF dokumenter er Rich Text dokumenter der kan formateres med farver og forskellige skrifttyper. I nogle tilfælde kan det være interessant at transformere

Læs mere

2 Indledning. Karsten Kynde 2007.8.28. Figur 1

2 Indledning. Karsten Kynde 2007.8.28. Figur 1 2 Indledning Karsten Kynde 2007.8.28 Betragt følgende tekst 1 : Figur 1 Som en hjælp til de læsere der ikke læser gotisk håndskrift og for at få lejlighed til at demonstrere XML vil vi transskribere teksten.

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

TravelTales; håndtering af konfigurationsfil

TravelTales; håndtering af konfigurationsfil TravelTales; håndtering af konfigurationsfil 1 (7) TravelTales; håndtering af konfigurationsfil Synopsis Dette dokument beskriver indholdet i en TravelTales konfigurationsfil og metoder til hvordan man

Læs mere

FSFI s guide til DFR s elektronisk bevissystem

FSFI s guide til DFR s elektronisk bevissystem FSFI s guide til DFR s elektronisk bevissystem Dette er en kort guide i anvendelsen af Dansk Førstehjælpsråd elektroniske bevissystem. Guiden viser og forklarer, hvordan du som instruktør og medlem af

Læs mere

Brug Photo Story 3 en let introduktion

Brug Photo Story 3 en let introduktion Brug Photo Story 3 en let introduktion Denne vejledning forudsætter at programmet Photo Story 3 er installeret på din computer. Se andetsteds for vejledning i at installere programmet, der kan findes gratis

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Regneark II Calc Open Office

Regneark II Calc Open Office Side 1 af 10 Gangetabel... 2 Udfyldning... 2 Opbygning af gangetabellen... 3 Cellestørrelser... 4 Øveark... 4 Facitliste... 6 Sideopsætning... 7 Flytte celler... 7 Højrejustering... 7 Kalender... 8 Dage

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

Installér din Officepakke 2013

Installér din Officepakke 2013 Vær opmærksom på der godt kan forekomme andre billeder end dem som er illustreret. Dette er grundet ændringer fra microsoft. Blandt andet bliver SkyDrive ændret til OneDrive. Er du i tvivl om noget kan

Læs mere

Opsætning af forbindelse til Danmarks Statistik

Opsætning af forbindelse til Danmarks Statistik 23. april 2015 MTL Forskningsservice Opsætning af forbindelse til Danmarks Statistik Denne vejledning beskriver opsætning og logonprocedure fra Windowsmaskiner ved ekstern logon til DST s forskerservere

Læs mere

Hjælp under login på Mit DLR Oktober 2015

Hjælp under login på Mit DLR Oktober 2015 Hjælp under login på Mit DLR Oktober 2015 Jeg logger ind med bruger-id og nøglekort og får at vide, at der ikke er nogen sager i DLR Der er logget ind med forkert NemID. Vi oplever mange henvendelser,

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

ASB E-mailsignatur. ASB E-mailsignatur. Vejledning til opsætning af e-mailsignatur IKT - Februar 2008

ASB E-mailsignatur. ASB E-mailsignatur. Vejledning til opsætning af e-mailsignatur IKT - Februar 2008 ASB E-mailsignatur I det følgende forklares, hvordan du opretter ASBs e-mailsignatur for medarbejdere. Det skal her noteres at e-mail signaturen ikke kan opsættes i webmail (webmail.asb.dk), men skal opsættes

Læs mere

JavaScript. nedarvning.

JavaScript. nedarvning. JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man

Læs mere

Installation af Elektronisk APV på flere PC er

Installation af Elektronisk APV på flere PC er Installation af Elektronisk APV på flere PC er Vejledning til installation af Elektronisk APV, når programmet skal installeres på flere PC er, der kobler sig op på en fælles server. 1 Installation af Elektronisk

Læs mere

Brugervejledning til InfoLand.dk skabelonen

Brugervejledning til InfoLand.dk skabelonen Indhold Indledning... 4 Første gang... 4 Log ind som Administrator og ændre kodeord... 4 Opret Redaktør (dig selv)... 4 Log ind... 4 Log ind med dit eget brugernavn ( Redaktør )... 4 Log ind som Administrator...

Læs mere

In stal l ati on sv ejl edn i n g er ti l di gi tal e n o- tesbøger

In stal l ati on sv ejl edn i n g er ti l di gi tal e n o- tesbøger Dato 15. marts 2016 Sagsbehandler Kim N. Eriksen Mail kine @vd.dk Telefon +45 2544 7014 Dokument 16/03534-1 Side 1 / 29 In stal l ati on sv ejl edn i n g er ti l di gi tal e n o- tesbøger 1. Introduktion

Læs mere

Grafisk workflow. Se siden her: www.cormas.dk

Grafisk workflow. Se siden her: www.cormas.dk Grafisk workflow Se siden her: www.cormas.dk Dokumentation 4 Procesbeskrivelse 5 Inspirationssøgning 6 Skitser 8 Layout i Photoshop 9 Farver 10 Font 11 Flowchart 12 Wireframe 13 Storyboard 14 kontakt.html

Læs mere

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning Dansk Ride Forbund Stævnesystem 2 Installationsvejledning Redigeret Marts 2009 DANSK RIDE FORBUND Stævnesystem 2 Installationsvejledning Side 1 af 19 Indholdsfortegnelse: 1. Minimumskrav 3 2. Download

Læs mere

Google Chrome side 1 af13

Google Chrome side 1 af13 Google Chrome side 1 af13 Indholdsfortegnelse: Download Google Chrome... Side 2 Overblik... Side 3 Angiv startside... Side 7 Søg direkte i adresselinjen... Side 8 Bogmærker sider... Side 8 Bogmærkeadministratoren...

Læs mere

Lav din egen forside i webtrees

Lav din egen forside i webtrees Lav din egen forside i webtrees Du behøver ikke at kunne kode eller gøre noget advanceret for at designe din helt egen forside i webtrees. Alt du skal gøre er bare at gøre brug af den indbygget editor.

Læs mere

Vejledning i opbygning af Tillidszonen

Vejledning i opbygning af Tillidszonen Vejledning i opbygning af Tillidszonen Vejledning til FOAs lokale afdelinger i opbygningen af deres del af Tillidszonen FOA Fag og Arbejde Januar 2006 1 Indholdsfortegnelse Forbunds- og afdelingsdel...3

Læs mere

Betjeningsvejledning. for. UniRace

Betjeningsvejledning. for. UniRace Betjeningsvejledning for UniRace 2007 Et konkurrence indtastningsprogram. Indholdsfortegnelse Indholdsfortegnelse... 2 Figur fortegnelse... 3 Indledning... 4 Race info... 4 Indtastning af deltagere...

Læs mere

Excel-4: Diagrammer og udskrift

Excel-4: Diagrammer og udskrift Excel-4: Diagrammer og udskrift Udfra indtastede tal og formler kan Excel oprette forskellige typer meget flotte diagrammer: grafer, kurver, søjler og cirkeldiagrammer. OPGAVE: Men der skal være nogle

Læs mere

Adobe Elements Lektion 2

Adobe Elements Lektion 2 Adobe Elements Lektion 2 Så er det igen tid til at lege lidt med billeder. Jeg går ud fra, at du nu har fået opsat Elements efter de anvisninger du fik i sidste lektion. Start Elements op Gå ind i Edit

Læs mere

Installation og opsætning af Outlook klient til Dynamics CRM

Installation og opsætning af Outlook klient til Dynamics CRM Dynamics CRM 4.0 Bredana Systemudvikling A/S - How to Installation og opsætning af Outlook klient til Dynamics CRM Først velkommen til din hostede Dynamics CRM. Med Outlook klienten installeret får du

Læs mere

Brugermanual til Wordpress 3.2.x Content Management System

Brugermanual til Wordpress 3.2.x Content Management System Indhold Brugermanual til Wordpress 3.2.x Content Management System Kontrolpanelet 2 Brugerniveauer 2 Log ud 3 Profil 4 Generel Info (vigtigt) 5 Tilføj nyt indlæg(1) 6 Tilføj nyt indlæg(2) 7 Tilføj nyt

Læs mere

Brugervejledning til diverse i OS X

Brugervejledning til diverse i OS X Brugervejledning til diverse i OS X Gert Søndergaard 19. august 2003 Indholdsfortegnelse Indholdsfortegnelse...2 Introduktion til Mac OS X...3 Flere brugere på samme maskine...3 Dock - den gamle kvikstart...4

Læs mere

RUTruteplanlægningsvejledning. Folkekirkens Nødhjælp Sogneindsamling 2015

RUTruteplanlægningsvejledning. Folkekirkens Nødhjælp Sogneindsamling 2015 RUTruteplanlægningsvejledning Folkekirkens Nødhjælp Sogneindsamling 2015 Indhold 1. Introduktion til RUT... 2 1.1 Om vejledningen... 2 2. Log på RUT... 4 3. Sådan planlægger du ruter... 6 4. Sådan finder

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Superskolernes kampagne

Superskolernes kampagne Superskolernes kampagne Projekt i Kommunikation/IT Roskilde Tekniske Skole Side 1 af 12 Indhold Indledning... 3 Målgruppeanalyse - Kanylemodel... 4 Begrundelse for valg af medie... 5 Grovskitsering...

Læs mere

HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ

HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ Når du bruger FILM-X animationsværktøjet har du hele tiden adgang til at få hjælp. Hjælpeboksen ligger i højre side af skærmen og den kan ses her nedenfor. Hjælpen er

Læs mere

Velkommen til IT for let øvede

Velkommen til IT for let øvede Velkommen til IT for let øvede Kursus er hjælp til selvhjælp og I får mest ud af det, hvis I også derhjemme afsætter nogle timer til øvelser på jeres computer. Vi sørger for hjemmeopgaver!! Der er masser

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Wipigo Galleri. Brugsforvirring. Venstre side af startbillede efter der er logget ind (Højre side viser det/de gallerier der er oprettet).

Wipigo Galleri. Brugsforvirring. Venstre side af startbillede efter der er logget ind (Højre side viser det/de gallerier der er oprettet). Wipigo Galleri. Brugsforvirring Venstre side af startbillede efter der er logget ind (Højre side viser det/de gallerier der er oprettet). Kategorier/Gallerier/Albums, flere benævnelser for den samme ting.

Læs mere

Introduktion til billedbehandling med IrfanView

Introduktion til billedbehandling med IrfanView Introduktion til billedbehandling med IrfanView I takt med at digitalkameraer bliver billigere og efterhånden snart er hvermands eje, stiger behovet også for at kunne behandle sine billeder på en nem,

Læs mere

Det sprogpædagogiske kørekort 2012/2013. Modul 9: Rettelse af kursistopgaver (Del 1)

Det sprogpædagogiske kørekort 2012/2013. Modul 9: Rettelse af kursistopgaver (Del 1) Det sprogpædagogiske kørekort 2012/2013 Modul 9: Rettelse af kursistopgaver (Del 1) Christoph Schepers Indhold I Ret opgaver i Word Markér fejl i farver (nemt og hurtigt).. Brug Words egne retteværktøjer:

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12 Installation og Drift Aplanner for Windows Systemer Version 8.15.12 Aplanner for Windows løsninger Anbefalet driftsopsætning Cloud løsning med database hos PlanAHead Alle brugere, der administrer vagtplaner

Læs mere

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem DRFLive - dynamisk visning af resultater fra DRF Stævnesystem Resumé: Beskrivelse af program (DRFLive) til dynamisk visning af resulter fra DRF Stævnesystem Forfatter: Claus Hulstrøm Dato: 15. januar 2010

Læs mere

Microsoft Dynamics CRM 2013

Microsoft Dynamics CRM 2013 Microsoft Dynamics CRM 2013 Dashboard, PowerPivot og PowerView CRM User Group Denmark www.easyconsult.dk Præsentation Henrik Jensen Microsoft Dynamics CRM-arkitekt hj@easyconsult.dk Arbejdet med CRM-systemer

Læs mere

Mini brugermanual CMD 5.1

Mini brugermanual CMD 5.1 Mini brugermanual CMD 5.1 Kom i gang For at tilgå CMD skal du åbne en web browser og indtaste URL en på dit CMD website i adressefeltet, hvorefter dialogboksen til log in vises. 1. Indtast dit brugernavn

Læs mere

Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne)

Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne) Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne) Formål: Ved at anvende arkiv-funktionen kan arrangørerne ved et træningsløb uden tilmeldinger eller ved åbne baner hurtigt

Læs mere

02101 Indledende Programmering Introduktion til Eclipse

02101 Indledende Programmering Introduktion til Eclipse 02101 Indledende Programmering Introduktion til Eclipse Version 2018 1 Introduktion I dette kursus lægger vi op til at man bruger det integrerede udviklingsmiljø Eclipse. Basalt set er et integreret udviklingsmiljø

Læs mere

Brugermanual. Tripple Track Fleet

Brugermanual. Tripple Track Fleet Brugermanual Tripple Track Fleet Version 3.15 Side 1 af 19 Indholdsfortegnelse Installation:... 3 Login:... 3 Se alle biler:... 4 Status skift:... 5 Historie:... 7 Punkt information:... 9 Find adresse:...

Læs mere

Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse 1.6 07-05-2010

Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse 1.6 07-05-2010 ROSKILDE TEKNISKE GYMNASIUM Eksamensopgave Kommunikation/it Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse 1.6 07-05-2010 Vi har valgt at beskæftige os med opgave 1 fra oplæget.

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

Mamut Anlægsregister Introduktion

Mamut Anlægsregister Introduktion Mamut Anlægsregister Introduktion This program includes software developed by Skybound Software (http://www.skybound.ca) Mamut Anlægsregister INDHOLD 1 OM MAMUT ANLÆGSREGISTER... 1 2 INSTALLATION... 2

Læs mere

Sitecore - basisvejledning Version 2. September 2010

Sitecore - basisvejledning Version 2. September 2010 Sitecore - basisvejledning Version. September 00 Sådan opretter du en ny artikelside... Sådan omdøber du et artikelnavn så du får vist æ,ø og å... Sådan udgiver (publiserer) du nyt eller redigeret indhold...4

Læs mere

Kom godt i gang med OneDrive

Kom godt i gang med OneDrive Kom godt i gang med OneDrive Office365 er en mulighed for lærere og elever at bruge en office-pakke på egne enheder - man kan downloade det til brug på pc - mac - tablets og smartphones, i alt op til 5

Læs mere

Skyfillers Hosted SharePoint. Kundemanual

Skyfillers Hosted SharePoint. Kundemanual Skyfillers Hosted SharePoint Kundemanual Kundemanual Indhold Generelt... 2 Online adgang SharePoint side... 2 Skift brugeradgangskode... 2 Adgang & opsætning... 3 Windows... 3 Tilføj SharePoint som intranet

Læs mere

Installation og administration af MarvinSketch. Anders Almlund Osted, Køge Gymnasium

Installation og administration af MarvinSketch. Anders Almlund Osted, Køge Gymnasium Installation og administration af MarvinSketch Anders Almlund Osted, Køge Gymnasium September 2015 1 Indholdsfortegnelse Administration af programmet... 3 Registrering... 3 Ansøg om undervisningslicens...

Læs mere

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.:

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Kategoriseringer uden ABC-kategorier Krydstabel (trebenede) Beregnede og avancerede

Læs mere

Appendiks: Andre Google-programmer

Appendiks: Andre Google-programmer Appendiks: Andre Google-programmer I et hæfte som Gratisprogrammer fra Google er der ikke plads til at omtale alle de spændende Google-programmer. Og der kommer hele tiden nye til. I dette appendiks får

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Vejledning til Blackboards portfolio værktøj

Vejledning til Blackboards portfolio værktøj Vejledning til Blackboards portfolio værktøj Brug denne vejledning, når du skal udarbejde din undervisningsportfolio i Blackboards portfolio værktøj. Ved at følge alle trinene nedenfor får du udarbejdet

Læs mere

Fejlfinding i Transportlaget til Navision Stat 3.60 SP2

Fejlfinding i Transportlaget til Navision Stat 3.60 SP2 Fejlfinding i Transportlaget til Navision Stat 3.60 SP2 FEJLFINDING I TRANSPORTLAGET TIL NAVISION STAT 3.60 SP2 1 INDLEDNING 2 FORUDSÆTNING FOR AT FEJLFINDING GIVER MENING: 2 KAN IKKE SENDE 3 DOKUMENTET

Læs mere

Vejledning i skabelse og test af metadata

Vejledning i skabelse og test af metadata Side 1 af 5 Tilbage til statslige vejledninger Tilbage til vejledninger for kommunale myndigheder Vejledning i skabelse og test af metadata Indhold på denne side: 1. Om metadata 1.1 Opmærkning 2. Skabelse

Læs mere

Søren Christiansen 22.12.09

Søren Christiansen 22.12.09 1 2 Dette kompendie omhandler simpel brug af Excel til brug for simpel beregning, såsom mængde og pris beregning sammentælling mellem flere ark. Excel tilhører gruppen af programmer som samlet kaldes Microsoft

Læs mere

Del filer i hjemmet. Hvis dit hjem har to eller. 5-10 min. NY SERIE

Del filer i hjemmet. Hvis dit hjem har to eller. 5-10 min. NY SERIE DEL DET HELE I denne artikelserie lærer du de bedste og letteste metoder til at dele filer, printere og internetforbindelse med andre både på dit netværk i hjemmet og via internettet. Del filer i hjemmet

Læs mere

MANUAL AF FILIP WALLBERG & RUNE MICHELSEN

MANUAL AF FILIP WALLBERG & RUNE MICHELSEN MANUAL AF FILIP WALLBERG & RUNE MICHELSEN NB! Denne manual er også fuldt ud anvendelig til arbejdet på radionyheder.dk og tvnyheder.dk, da disse sites er bygget op i nøjagtig samme system! Indhold Om

Læs mere

Vurdering af digitalt læringsmiddel:

Vurdering af digitalt læringsmiddel: Vurdering af digitalt læringsmiddel: Indholdsfortegnelse: 1) Beskrivelse af Photo Story 3.. 2 a. Trin 1.. 3 b. Trin 2.. 5 c. Trin 3.. 5 d. Trin 4.. 6 e. Trin 5.. 6 2) Konklusion. 7 Claus B. Jensen Side

Læs mere

Øvelse 1, individuel øvelse billeder, links og undersider

Øvelse 1, individuel øvelse billeder, links og undersider Øvelse 1, individuel øvelse billeder, links og undersider 1. Målsætning I dag skal du lære om principperne bag HTML5 -om hvordan form og indhold er adskilt, og hvordan koden binder dem sammen. Det er et

Læs mere

Vejledning til CropSAT.dk

Vejledning til CropSAT.dk Vejledning til CropSAT.dk Start med at kontrollere om din web browser (f. eks. Google Chrome, Firefox eller Internet Explorer) er opdateret til nyeste version Baggrundskortet, som vist ovenfor, er fra

Læs mere

Modul 8: Clouds (Lagring af filer)

Modul 8: Clouds (Lagring af filer) Det sprogpædagogiske kørekort 2012/2013 Modul 8: Clouds (Lagring af filer) Del I Christoph Schepers Studieskolen 8/2012 Indholdsfortegnelse Introduktion... 2 Installer Dropbox (punkt 1-3).. 3 Åbn Dropbox

Læs mere

Generelt Windows tidligere versioner... 1 Windows Apple Mac Log på... 2 Rediger dokumentet Tilføj et tillægsdokument...

Generelt Windows tidligere versioner... 1 Windows Apple Mac Log på... 2 Rediger dokumentet Tilføj et tillægsdokument... Vejledning i brug af dli dokumenthåndteringssystemet til forfattere og referenter Indhold Vejledning i brug af dli dokumenthåndteringssystemet til forfattere og referenter... 1 Generelt... 1 Windows tidligere

Læs mere

UDARBEDELSE: RANDI MAHÉ DATO: 14. AUGUST 2003 UDGAVE: REVISION 4.3 SITECORE A/S TORNEBUSKEGADE 1 DK-1131 COPENHAGEN K

UDARBEDELSE: RANDI MAHÉ DATO: 14. AUGUST 2003 UDGAVE: REVISION 4.3 SITECORE A/S TORNEBUSKEGADE 1 DK-1131 COPENHAGEN K BRUGER MANUAL CONTENT MANAGER UDARBEDELSE: RANDI MAHÉ DATO: 14. AUGUST 2003 UDGAVE: REVISION 4.3 SPROG: DANSK SITECORE A/S TORNEBUSKEGADE 1 DK-1131 COPENHAGEN K TEL: +45 70 23 66 60 FAX: +45 70 23 66 70

Læs mere

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Beskrivelse af fejlen Salmebogen på CD-ROM har visse problemer med at fungere i Internet Explorer

Læs mere

REFWORKS FAGKONSULENTENS VEJLEDNING

REFWORKS FAGKONSULENTENS VEJLEDNING REFWORKS FAGKONSULENTENS VEJLEDNING Nationale Kliniske Retningslinjer Version 09-02-2015 2015 Indholdsfortegnelse 1. Refworks og Nationale Kliniske Retningslinjer... 3 2. Ekstern adgang til RefWorks...

Læs mere

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2 Version 1.0 Jan 2013 ROB-EX 4.2 Indhold Hovedskærmens opbygning... 2 Tastaturgenveje... 3 Hovedskærmbilleder... 4 Stamdata generelt... 5 Kalender... 6 Opret/rediger kalender... 7 Specifik kalender pr.

Læs mere

MSI pakke til distribution af AutoPilot komponenter.

MSI pakke til distribution af AutoPilot komponenter. MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,

Læs mere

Kingsoft Office som alternativ til Microsoft Office.

Kingsoft Office som alternativ til Microsoft Office. Kingsoft Office som alternativ til Microsoft Office. Hvis man ikke har råd til at købe Microsoft Office, og man heller ikke lige har en fætter, der kan organisere en sort udgave, vælger de fleste at hente

Læs mere

Genvejstaster. Brugerfladen. Filhåndtering. Navigation i dokumentet. Aktiver adgangstaster. Aktiver genvejsmenu (højreklik)

Genvejstaster. Brugerfladen. Filhåndtering. Navigation i dokumentet. Aktiver adgangstaster. Aktiver genvejsmenu (højreklik) Genvejstaster Brugerfladen Hjælp Vis/skjul båndet Aktiver adgangstaster Afslut Word Aktiver genvejsmenu (højreklik) Udskriftslayout Kladdevisning Dispositionsvisning Hop til næste dokumentvindue Hop til

Læs mere

Android-app til Legacy pa Windows-pc

Android-app til Legacy pa Windows-pc Android-app til Legacy pa Windows-pc Efter at have bøvlet med kamera, kamerastativ, min store 17 bærbare pc, samt blyanter, viskelæder, nøgler, mobiltelefon, briller og hvad man ellers har med på arkivbesøg

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Netkatalog upload. Forord: Formål:

Netkatalog upload. Forord: Formål: Netkatalog upload Forord: De data, I indsender som e-katalog, genbruges af SKI s kunder i de ordre, der sendes tilbage til Jer. Det er derfor vigtigt, både for kundes efterfølgende fakturakontrol; men

Læs mere

REFWORKS vejledning til Nationale Kliniske Retningslinjer Fagkonsulentens version (december 2013)

REFWORKS vejledning til Nationale Kliniske Retningslinjer Fagkonsulentens version (december 2013) REFWORKS vejledning til Nationale Kliniske Retningslinjer Fagkonsulentens version (december 2013) 2013 Indholdsfortegnelse 1. Refworks og Nationale Kliniske Retningslinjer... 3 2. Log ind i RefWorks...

Læs mere

Installationsguide til SAP Business One 2005 SP1 (SBO 2005)

Installationsguide til SAP Business One 2005 SP1 (SBO 2005) Installationsguide til SAP Business One 2005 SP1 (SBO 2005) Installationen af SBO 2005 Service Pack 1består af flere enkeltkomponenter. Først og fremmest skal der installeres en database til at indeholde

Læs mere

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Virtuel PC Fordele/ulemper Fordele: Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Ulemper: Reserverer RAM (Windows 7) Problemer med at ureglementeret lukke ned Mister

Læs mere

Gem Et billede som skrivebordsbaggrund Vil du bruge dit eget billede som baggrundsbillede på skrivebordet.

Gem Et billede som skrivebordsbaggrund Vil du bruge dit eget billede som baggrundsbillede på skrivebordet. Gem Et billede som skrivebordsbaggrund Vil du bruge dit eget billede som baggrundsbillede på skrivebordet. Klik på det billede du vil bruge og vælg opret/anvend som baggrundsbillede, i værktøjslinien Klik

Læs mere

Nyhedsmodul brugermanual

Nyhedsmodul brugermanual Nyhedsmodul brugermanual version 6 Indholdsfortegnelse 1. Kategorier... 02 1.1. Hvordan opretter jeg en kategori?... 02 1.2. Hvordan viser jeg en nyhedskategori på websitet?... 02 2. Oprettelse/redigering

Læs mere

Opret ODBC datakilde Vejledning

Opret ODBC datakilde Vejledning Vejledning V. 1 APRIL 2011 FOR KUNDESERVICE Indholdsfortegnelse 1 Indledning... 3 1.1 Formål... 3 1.2 Målgruppe... 3 1.3 Krav... 3 2 Opret ODBC Datakilde (Open Database Connectivity)... 3 2.1 Forbindelse

Læs mere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel

Læs mere

Linket viser jer frem til billedet nedenfor, her skal du blot skrive jeres brugernavn og adgangskode. Indtast din adgangskode her:

Linket viser jer frem til billedet nedenfor, her skal du blot skrive jeres brugernavn og adgangskode. Indtast din adgangskode her: Brugervejledning til håndtering af respondenter til MUS i SurveyXact Indledning Denne manual beskriver, hvordan SurveyXact kan anvendes til forberedelse af MUS. Der tages udgangspunkt i handlinger, den

Læs mere

Projekt - Valgfrit Tema

Projekt - Valgfrit Tema Projekt - Valgfrit Tema Søren Witek & Christoffer Thor Paulsen 2012 Projektet Valgfrit Tema var et projekt hvor vi nærmest fik frie tøjler til at arbejde med hvad vi ville. Så vi satte os for at arbejde

Læs mere

05.060 E-mail mailinglister i Revimentor

05.060 E-mail mailinglister i Revimentor 05.060 E-mail mailinglister i Revimentor Revimentor giver mulighed for at revisor kan benytte mailinglister til sende e-mails kunder eller kontaktpersoner hos kunder. Dette kan bruges til nyhedsmail eller

Læs mere

Vejledning til opbygning af hjemmesider

Vejledning til opbygning af hjemmesider Side 1 af 9 Vejledning til opbygning af hjemmesider Hvis du er inde på din klubs hjemmeside, fx på forsiden, kan du nu gå i gang med at redigere. For at få redigeringsværktøjet frem, skal du klikke på

Læs mere