UPORABA XML PRI OBDELAVI DOKUMENTOV V. ectd OKOLJU

Velikost: px
Začni prikazovanje s strani:

Download "UPORABA XML PRI OBDELAVI DOKUMENTOV V. ectd OKOLJU"

Transkripcija

1 UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Andreja Mavrič UPORABA XML PRI OBDELAVI DOKUMENTOV V ectd OKOLJU Diplomska naloga Maribor, november 2008

2 ii UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17 Diplomska naloga visokošolskega strokovnega študijskega programa UPORABA XML PRI OBDELAVI DOKUMENTOV V ectd-okolju Študent: Andreja Mavrič Študijski program: visokošolski strokovni, Računalništvo in informatika Smer: Informatika Mentor: izr. prof. dr. Matjaž B. JURIČ Maribor, november 2008

3 iii UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17 Številka: RI.0162 Datum: SKLEP O DIPLOMSKI nalogi 1. Andreja MAVRIČ, študentka visokošolskega strokovnega študijskega programa Računalništvo in informatika, smer Informatika, izpolnjuje pogoje, zato se ji dovoljuje izdelati diplomsko delo.. 2. Tema diplomske naloge je s področja Inštituta za informatiko pri predmetu ODLOČITVENI SISTEMI. MENTOR: izred. prof. dr. Branko Matjaž Jurič 3. Naslov diplomske naloge UPORABA XML PRI OBDELAVI DOKUMENTOV V ectd OKOLJU 4. Vsebina diplomske naloge Z razvojem informatike se je tudi v farmacevtski industriji povečala uporaba informacijske tehnologije. V postopku registracije zdravil se je za oddajo dokumentov za registracijo zdravila razširila uporaba CTD okolja (CTD Common Technical Document). Proučite pomen, vlogo in priložnosti uporabe elektronskega CTD okolja ter preštudirajte arhitekturo. Proučite sestavo XML in DTD dokumentov. Sestavite lastno XML shemo za izbran nabor podatkov. Izdelajte prototipno rešitev za obdelavo ectd dokumentov. 5. Diplomsko nalogo je potrebno izdelati skladno z "Navodili za izdelavo diplomske naloge" in ga oddati v treh izvodih do v referatu za študijske zadeve. PREDSTOJNIK INŠTITUTA DEKAN

4 iv ZAHVALA Zahvaljujem se mentorju dr. Matjažu B. Juriču za pomoč in vodenje pri opravljanju diplomske naloge. Posebno se zahvaljujem mojemu delodajalcu, ki mi je omogočil študij. Zahvaljujem pa se tudi moji družini, ker me je vseskozi podpirala.

5 v UPORABA XML PRI OBDELAVI DOKUMENTOV V ectd-okolju Ključne besede: xml, xml dtd, dtd, xml shema, xsl transformacije, xslt, xpath, xml dom, xml serializacija UDK: :004.6:004.77(043.2) Povzetek Namen tega diplomskega dela je razložiti uporabo XML (Extensible Markup Language) in njegovo uporabo pri obdelavi dokumentov v ectd okolju. Opisuje dve shemi za pregled strukture XML dokumenta: DTD (Document Type Definition) in XML shemo. Pojasni, kako in zakaj se uporabljata XPath in XSL transformacija. V nadaljevanju pojasni uporabo XML pri delu regulatornih organov s pregledom strukture CTD (Common Technical Document), ki je osnova pri uporabi ectd (electronic CTD). V zaključku ugotovi, ali je XML shema v regulatornih organih primernejša od DTD, in za obdelavo XML dokumenta primerja pristopa XML DOM (Document Object Model) in XML serializacijo ter razloži njune prednosti in slabosti.

6 vi HANDELING DOCUMENTS USING XML IN ectd ENVIRONMENT Key words: xml, xml dtd, dtd, xml scheme, xsl transformations, xslt, xpath, xmk dom, xml serialization, xml serialize UDK: :004.6:004.77(043.2) Abstract The prupose of this diploma is to explain the use of XML (Extensible Markup Language) and its use in ectd environment. For the review of the XML document structure, it uses two schemes: DTD (Document Type Definition) and XML scheme. Diploma also explains why and how to use XPath and XSL Transformations. It explains the use of XML in pharmaceutical industry for regulatory purposes with explanation of the structure of CTD (Common Technical Document) which is the base of ectd (electronic CTD). In the conclusion diploma establishes if the XML schema is more suitable than DTD for regulatory purposes and compares two approaches for handeling the XML documents: XML DOM (Document Object Model) and XML Serialization. For each approach it explains the advantages and the weaknesses.

7 vii VSEBINA 1. UVOD 1 2. XML KRATEK OPIS XML DTD XML Shema XSL Transformacije XPath ECTD CTD OKOLJE DEFINICIJA ectd STRUKTURA ectd RAZVOJ APLIKACIJE ZA OBDELAVO XML DOKUMENTA SKLEP LITERATURA 51 PRILOGE 52

8 viii UPORABLJENE KRATICE XML - Extensible Markup Language (razširljivi označevalni jezik) DTD - Document Type Definition (pravila za strukturiranje dokumenta) XPath - XML Path Language XSL - Extensible Stylesheet Language (razširljiv jezik za oblikovanje) HTML - Hyper Text Markup Language (jezik za označevanje) PCDATA - Parsed Character Data (razčlenjen znakovni podatek) CDATA - Character Data (znakovni podatek) NMTOKEN - Name Token XMLNS - XML Namespace XSD - XML Schema Definition XSLT - XSL Transformations XSL-FO - XSL Formating Objects CTD - Common Technical Document (skupen strokoven dokument) ectd - Electronic Common Technical Document (elektronski CTD) ICH - The International Conference on Harmonisation (Mednarodna konferenca za harmonizacijo) EWG - Expert Working Group (delovna skupina ekspertov) DOM - Document Object Model

9 1 1. UVOD V računalniškem svetu poznamo veliko programskih jezikov in vsak je specifičen. Čeprav XML ni programski jezik, pač pa označevalni jezik, lahko z njim tudi programiramo. Pisati moramo po točno določenih pravilih, za njegovo pisanje ni potrebno namestiti posebnega programa, ampak lahko uporabimo le program za pisanje teksta (na primer notepad). V njem lahko uporabimo tudi stavke iz drugih programskih jezikov. Za preverjanje, ali smo XML dokument prav napisali in oblikovali, lahko uporabimo več shem. Najbolj razširjeni sta DTD in XML shema. Z obema preverimo, ali je XML dokument pravilno in sintaktično napisan ter ali imamo v XML dokumentu pravilno napisane elemente glede na sheme v dokumentu. Kadar želimo videti vsebino določenega elementa uporabimo XPath, saj bi bilo pregledovanje celotnega XML dokumenta dolgotrajno. Na voljo imamo več operatorjev, s katerimi dostopamo do določenega elementa ali atributa, kar nam olajša iskanje. XML dokument izgleda na pogled nepregleden. Vse kar vidimo so < ali >. Za boljšo preglednost, lahko uporabimo XSL transformacijo, ki. nam omogoča, da XML preuredimo v drug, preglednejši jezik, kot na primer HTML. Za transformacijo v HTML moramo imeti osnovno znanje o HTML in tudi XPath, saj preko njega dostopamo do elementov. Ker je XML zelo uporaben, se je njegova uporaba razširila tudi v farmacevtski industriji. Na oddelku registracije proizvodov trenutno uporabljamo CTD okolje, vendar počasi prihajamo na e-ctd okolje, ki temelji izključno na XML tehnologiji. Z letom 2009 bo potrebno vloge oddajati v e-ctd okolju. e-ctd natančno določa strukturo dosjeja, pri čemer nam je v pomoč DTD. Vedeti je na primer potrebno, da mora biti vsaka neaktivna substanca v svoji mapi, da moramo imeti tudi vsakega proizvajalca aktivne substance v svoji mapi in da moramo izpolniti določene atribute dokumenta. Regulatorni organi našo vlogo najprej preverijo preko XML validatorja in če ta javi napako v strukturi ali v napačnem poimenovanju dokumentov, nam vlogo za registracijo zdravil zavrnejo. Pri nekaterih je poimenovanje določeno, pri drugih (kot na primer sekcija analitski postopki in validacija analitskih postopkov) pa imena dokumentov niso predpisana.

10 2 2. XML 2.1 KRATEK OPIS XML XML pomeni razširljiv označevalni jezik in je W3C standard. Sintaksa je definirana kot enostavno berljive značke (tags). Podatke obkroža označevalni tekst, ki te podatke opiše. Osnovna enota za označevanje podatkov se imenuje element. Specifikacija XML natančno določa sintakso označevanja, kot na primer, kako so elementi omejeni z značkami, kako značka izgleda, katera imena so primerna za elemente itd. XML je enostaven podatkovni format napisan s tekstom in ga lahko beremo z orodjem, ki lahko bere tekst. Čeprav je XML zelo fleksibilen, pa natančno določa slovnico, to je: kje lahko postavimo značko, kako ta izgleda, katera imena elementov so dovoljena, kako so atributi vključeni v elemente in še veliko stvari. Dokumentom, ki se držijo te slovnice, pravimo, da so well-formed ali dobro oblikovani. Dovoljene značke so lahko dokumentirane v shemi, določen dokument pa lahko primerjamo s shemo. Če se dokument ujema s shemo pravimo, da je validiran. Najbolj podprta shema s strani specifikacij je DTD (Document Type Definition). DTD je seznam značk, v katerem povemo kje in kako so lahko značke vključene v dokument. Njegova uporabnost je nekoliko omejena, saj v DTD ne moremo definirati, da imamo v določeni znački samo številke ali določeno formo opisa. To lahko rešimo z XML shemo, ki nam omogoča definirati te posebne izraze. Za preverjanje ali je XML pravilno napisan potrebujemo razčlenjevalnik kode (parser). Razčlenjevalnik kode je zadolžen, da razdeli dokument in preveri dokument korak za korakom. Pri tem preverja, ali kršimo strukturo dobro oblikovanega XML dokumenta. Če najde napako, jo javi in se ustavi. Nekateri razčlenjevalniki kode lahko dokument najprej preberejo in vse napake v oblikovanju javijo na koncu. V kolikor na začetku dokumenta napišemo, kje se določena DTD ali XML shema nahaja, nekateri razčlenjevalniki kode napisan dokument primerjajo s shemo in ga validirajo. Takšnemu razčlenjevalniku kode pravimo validacijski razčlenjevalnik kode, postopku pa pravimo validacija. Razlika med navadnim razčlenjevalnikom kode in validacijskim razčlenjevalnikom kode je v tem, da prvi samo preveri, ali je dokument oblikovan v skladu s XML specifikacijo, validacijski razčlenjevalnik kode pa primerja XML dokument s shemo. Preverja, ali smo v XML

11 3 dokumentu pravilno zapisali značke, ali smo jih napisali v pravilnem vrstnem redu, kot smo ga določili v shemi in drugo. XML dokument lahko začnemo pisati z XML deklaracijo: <?xml version="1.0" encoding="utf-8" standalone="no"?> V deklaraciji povemo verzijo XML, kodiranje in standalone. Verzija je ponavadi 1.0. Pri kodiranju izberemo pravo kodiranje za pisavo. Pri standalone imamo na voljo dve izbiri: no pomeni, da bomo uporabili zunanji DTD, pri yes, DTD ne bomo uporabili oziroma bomo uporabili interni DTD. [4] Vsak element se začne z začetno značko < > in nujno tudi s končno značko </>. Poznamo enostavne (Slika 2.1) in kompleksne elemente (Slika 2.2). Slika 2.1: Primer enostavnega elementa <knjiga> imenujemo element, besedilo med značko pa vsebina. Obstajajo tudi prazni elementi brez vsebine, <knjiga/>. Pri XML moramo paziti na velike in male črke, saj le-ta razlikuje med Knjiga, KNJIGA in knjiga. Celotna struktura XML dokumenta izgleda kot drevo, kjer imamo korenski (root) element, naprej pa starše in otroke. Slika 2.2: Primer kompleksnega elementa <knjiznica> je korenski element, z dvema otrokoma: <knjiga> in <dvd>. Če se sprehodimo naprej po strukturi, pridemo do elementov <naslov> in <avtor>. Ta dva elemente imata starša <knjiga>, pri elementu <dvd> pa nimamo otrok. Za določanje specifičnih podatkov o določenem elementu lahko uporabimo atribute. Atribut napišemo v začetno značko, vsebino atributa pa zapišemo v narekovaje (Slika 2.3). Narekovaji so lahko dvojni ali enojni, vrstni red ni pomemben. Slika 2.3: Primer pisanja atributa

12 4 Pri vsebini elementov moramo paziti, da ne uporabljamo rezerviranih XML znakov, kot so <, >, /, " in '. Te znake v vsebini nadomestimo z ASCII kodo ali z referenco, na primer: < &lt > &gt & &amp " &quot ' &apos Komentarje pišemo med znački <!-- komentar -->. Uporaba dvojnega vezaja (--) preden komentar zapremo z -->, ni dovoljena, prav tako ni dovoljena uporaba treh vezajev (--->). Z navodili za procesiranje (processing instruction) povemo, da naj upošteva stavke v drugem jeziku (npr.: php, asp in podobno). Stavke v tem jeziku zapišemo med <??>. Komentarji in navodila za procesiranje (processing instruction) niso elementi, zato jih lahko uporabljamo kjerkoli v XML dokumentu. Ker niso elementi, jih sheme ne prepoznajo in jih ne validirajo. Povzetek dobro oblikovanega XML dokumenta: vsaka začetna značka mora imeti ustrezno končno značko, elementi se gnezdijo, lahko je samo en korenski element, atribute pišemo v narekovajih, element ne sme imeti atributov z istim imenom, v elementu ali atributu se ne smeta uporabljati znaka < ali &. [3] 2.2 DTD DTD (Document Type Definition) nam pove, kje se nahaja določen element, kaj je njegova vsebina in kaj so njegovi atributi. Nato validacijski razčlenjevalnik kode primerja dokument z DTD, poišče morebitne razlike in jih izpiše. V DTD napišemo seznam elementov in atributov, njihov vrstni red ni pomemben. XML je sestavljen iz elementov in atributov (Slika 2.4), ki jih nato definiramo v DTD (Slika 2.5).

13 5 Slika 2.4: XML dokument, za katerega bomo napisali DTD Slika 2.5: DTD, ki ustreza XML dokumentu na Slika 2.4 Vsaka vrstica v DTD je deklaracija elementa. Elementi in atributi v DTD se morajo ujemati z XML dokumentom, čeprav imamo lahko v DTD deklariran element, ki ga v XML dokumentu ni. V zgornjem primeru vidimo, da ima dokument tri elemente, element knjiga pa ima še dva elementa. V DTD smo zapisali vse elemente, toda če v XML dopišemo element <revija/> in ta element v DTD izpustimo, nam bo validacijski razčlenjevalnik kode javil napako, ker tega elementa nimamo napisanega v DTD (Slika 2.6). Slika 2.6: XML dokument, ki je napisan narobe glede na DTD iz Slika 2.5 Vrstni red elementov in atributov v DTD ni pomemben, vendar pa je pomemben vrstni red njegovih otrok. <knjiznica> je korenski element, ki ima tri elemente <knjiga>, <dvd> in <cd>. V DTD je vseeno ali napišemo najprej element <knjiznica> ali najprej element <knjiga>, ki ima dva otroka. Pomembno je, da deklariramo <knjiznica> z elementi <knjiga>, <dvd> in <cd> in to v pravem vrstnem redu. Prav tako je pomembno, da je vrstni red v elementu <knjiga> najprej <naslov> in nato <avtor>. Validacijski

14 6 razčlenjevalnik kode bi v primeru zgornjega DTD (Slika 2.5) in sledečega XML (Slika 2.7) dokumenta javil napako, saj element <dvd> ne sme biti pred elementom <knjiga>. Slika 2.7: XML dokument, ki je napisan narobe glede na DTD iz Slika 2.5 Na žalost v DTD ne moremo definirati, kolikokrat se bo določen element pojavil, ampak le, koliko elementov je dovoljenih. To zapišemo z znaki (Tabela 2.1). * nič ali več elementov je dovoljenih.? nič ali en element je dovoljen. + en ali več elementov je dovoljenih. Tabela 2.1: Ponovljivost elementa Veljaven dokument vsebuje tudi povezavo na DTD, ki je lahko notranji ali zunanji. [2] To storimo z deklaracijo dokumenta!doctype. <!DOCTYPE knjiznica SYSTEM "C:\Faks\Diploma\XML vaje\dtd\knjiznica.dtd"> Pri tem smo povedali, da je knjižnica korenski element in da se DTD nahaja na trdem disku. Če sta XML dokument in DTD na istem naslovu, ga lahko skrajšamo: <!DOCTYPE knjiznica SYSTEM "knjiznica.dtd">. Pri zunanjem DTD uporabimo celotno deklaracijo dokumenta, ki jo napišemo pred korenskim elementom XML dokumenta (Slika 2.8). Slika 2.8: Primer deklaracije zunanjega DTD Pri notranjem DTD pa imamo namesto SYSTEM celoten DTD napisan v oglatih oklepajih [] (Slika 2.9).

15 7 Slika 2.9: Primer deklaracije notranjega DTD V istem XML dokumentu lahko uporabimo zunanji in notranji DTD. Najprej napišemo deklaracijo dokumenta za zunanji DTD, takoj za tem pa v oglatih oklepajih napišemo notranji DTD. <!DOCTYPE knjiznica SYTEM " [!ELEMENT..]> To je uporabno, kadar je DTD zelo splošen in ga lahko uporabimo za več XML dokumentov, vendar naš XML dokument vsebuje še kakšen element ali atribut, ki ga je potrebno validirati. Da je XML dokument veljaven, je potrebno v DTD zapisati vsak element z deklaracijo: <!ELEMENT ime specifikacija_vsebine>. Specifikacija vsebine nam pove, ali ima element otroke in kako se vrstijo. Najenostavnejša deklaracija elementa je tista brez otrok, kjer samo določimo, kakšen znakovni tip elementa imamo. Ta je lahko PCDATA ali CDATA. PCDATA je Parsed Character Data (razčlenjen znakovni podatek), ki pomeni, da bo razčlenjevalnik kode vsebino elementa preoblikoval, pri tem pa moramo paziti, da ne uporabljamo znakov <, > ali & ampak jih zapišemo z ustrezno referenco. CDATA pomeni Character Data (znakovni podatek), pri katerem pa lahko uporabimo prej prepovedane znake. Pri zaporedni izbiri elementov si otroka sledita v točno določenem vrstnem redu. To zapišemo tako, da najprej zapišemo starša in nato v oklepajih oba otroka. <!ELEMENT knjiga (naslov, avtor+)> Včasih pa nam zaporedje ne odgovarja in želimo imeti poljubno izbiro elementov, pri čemer ločimo otroka z navpično črto. <!ELEMENT knjiga (naslov avtor+)> Da je dokument veljaven, moramo poleg elementov deklarirati tudi atribute. <!ATTLIST knjiga ISBN CDATA #REQUIRED>

16 8 ustreza elementu knjiga z atributom ISBN. Poleg tega smo povedali še, kakšen tip je atribut in privzeto vrednost (default declaration). Če ima en element več atributov, lahko te napišemo v isto deklaracijo (Slika 2.10), vendar mora biti za vsak element deklaracija atributa v svoji vrsti. Slika 2.10: Primer deklaracije z več atributi v istem elementu Poznamo več tipov atributov (Tabela 2.2). CDATA lahko vsebuje katerikoli znak in je najpogostejši tip atributa. NMTOKEN je podobno kot XML ime, sestavljeno iz črk ali številk, pri katerem lahko uporabimo znake: podčrtaj ( _ ), vezaj (-), pika (.) in dvopičje (:), vendar ne smemo uporabiti presledka. <knjiga ISBN='1234'>XML</knjiga> <!ATTLIST knjiga ISBN NMTOKEN #REQUIRED> NMTOKENS vsebuje seznam vseh NMTOKEN, ki ji uporabljamo. Atribut lahko vsebuje enega ali več tipov NMTOKEN, ki jih ločimo s presledkom. <knjiga ISBN='12 34'>XML</knjiga> <!ATTLIST knjiga ISBN NMTOKEN #REQUIRED> Enumeration je seznam možnih vrednosti atributa, ločenih z navpično črto. <!ATTLIST datum mesec (jan feb mar apr maj jun jul avg sep okt nov dec) #REQUIRED> Element je veljaven samo, če v atribut vpišemo ime meseca, kot smo ga deklarirali. Če napišemo januar, bo validacijski razčlenjevalnik kode javil napako, da nismo uporabili pravega deklariranega atributa. ID IDREF je edinstven atribut, kar pomeni, da tega atributa ne sme uporabljati noben drug element. <oseba id='1' EMSO='223455'>Andreja</oseba> <oseba id='2' EMSO='223455'>Andreja</oseba> <!ATTLIST oseba EMSO ID #REQUIRED> Pri tem validacijski parser javi napako, da mora biti vrednost EMSO atributa pri drugi osebi edinstvena in različna od ostalih ID tipov. se sklicuje na ID tip atributa. <avtor id='a1'>andreja</avtor> <knjiga ISBN='1234' idavtor='a1'>xml</knjiga>

17 9 IDREFS ENTITY ENTITIES <!ATTLIST knjiga ISBN ID #REQUIRED idavtor IDREF #REQUIRED> <!ATTLIST avtor id ID #REQUIRED> je seznam atributov, ločenih s presledkom. Z entiteto lahko deklariramo besedo s kratico, ki se nato v izhodnem XML dokumentu izpiše kot celotna beseda. Entiteto deklariramo tako, da napišemo ime entitete in njeno nadomestilo. Ko želimo entiteto uporabiti, jo v XML dokumentu implementiramo z &. <jezik>&ang</jezik> <!ENTITY ang "anglesko"> je seznam vseh entitet. NOTATION je seznam vseh deklariranih notacij. Z notacijam povemo, kakšen tip zapisa Tabela 2.2: Tipi atributov bomo imeli. Formati zapisov slik in drugih podobnih zapisov ni v standardu XML, zato zanje uporabimo notacijo. <knjiznica jpeg="jpeg"> <!NOTATION jpeg SYSTEM "jpeg"> <!NOTATION png SYSTEM "png"> <!ATTLIST knjiznica jpeg NOTATION (jpeg png) #IMPLIED> Če moramo v element vedno napisati atribut, se odločimo za REQUIRED vrednost. IMPLIED atribut je opcijski. Če pa uporabimo FIXED, je vrednost atributa vedno enaka deklarirani v DTD, ne glede na to, da v XML dokumentu spremenimo vrednost atributa. Lahko se zgodi, da imamo več elementov z istimi elementi, le da imajo nekateri še kakšnega več. V DTD bi za vsak element, v katerem bi se elementi ponavljali, napisali svojo definicijo (Slika 2.11). Slika 2.11: Definicija elementov, v katerem se ponavljajo elementi V primeru, da želimo dodati kakšen element, moramo to storiti v vseh definicijah <!ELEMENT>. Da pa bi to poenostavili, uporabimo <!ENTITY> (Slika 2.12), v kateri definiramo skupine elementov, ki spadajo skupaj, in nato te definicije uporabimo z <!ELEMENT> (Slika 2.13).

18 10 Slika 2.12: Z <!ENTITY> definiramo skupine elementov Slika 2.13: Z <!ELEMENT> nato uporabimo te definicije V takšnem primeru lahko dodajamo nove elemente brez ponovnega definiranja vseh elementov in zgolj ponovno definiramo entiteto. Na primer, če želimo dodati element <leto>, ponovno definiramo entiteto osnovnipodatki tako, da pripišemo leto, in dokument je ustrezen. <!ENTITY % osnovnipodatki "naslov, leto">. 2.3 XML Shema XML shema je XML dokument, ki vsebuje pravila za pravilno oblikovan vhodni dokument. Čeprav DTD predstavlja osnovno validacijo, ima kljub temu nekaj pomanjkljivosti. Ko enkrat v DTD definiramo element ali atribut in mu določimo tip, ne moremo več določiti dolžine tipa in ne moremo omejiti zapisa vsebine elementa. Tudi oblika DTD je drugačna od XML dokumenta. Sintaksa XML sheme je podobna XML dokumentom in lahko deklarira pravila glede vsebine elementov in atributov. Zanimivo pri XML shemi je, da je ta tudi nekako XML dokument. Pravilno mora biti oblikovana in vsaka začetna značka (tag) mora imeti končno značko. Zaradi tega so pomembna imenska področja. [1] Imensko področje nam pove, kje se nahajajo vse sheme, ki jih potrebujemo pri validaciji XML dokumenta. V XML dokumentu z imenskimi področji povemo, kje se nahaja shema vseh shem in kje se nahaja naša shema. <knjiznica xmlns:xsi=" xsi:nonamespaceschemalocation="knjiznica.xsd"> Ker mora biti XML shema pravilno oblikovana, validacijski razčlenjevalnik kode vsako pregleda, ali ustreza pravilom dobrega oblikovanja in pravilom, ki jih definira shema vseh

19 11 shem. Shemo začnemo pisati z elementom <xs:schema>, kjer definiramo vsa imenska področja, ki jih potrebujemo. Lokacijo te sheme napišemo z atributom xmlns:xs. <xs:schema xmlns:xs=" elementformdefault="qualified" attributeformdefault="unqualified"> Atributa elementfromdefault in attributefromdefault sta opcijska in nam povesta, ali je v XML potrebno pisati predpono imenskega področja ali ne. Če je to potrebno, izberemo vrednost qualified, drugače izberemo unqualified. To je potrebno, kadar se sklicujemo na več shem, zato s predpono napišemo, v katero shemo spada element ali atribut. Sheme lahko tudi uvozimo, pri tem pa moramo novo shemo definirati z imenskim področjem. To naredimo tako, da jih v XML dokumentu definiramo. Z atributom xmlns zapišemo privzeto imensko področje za našo shemo, z atributom xmlns:oseba pa, kje se nahaja druga shema. Nujno je potrebno uporabiti atribut xsi:schemalocation, saj z njo zapišemo, katero shemo naj najprej pogleda. To naredimo tako, da najprej napišemo lokacijo, kje se shema nahaja, in za presledkom zapišemo imena naše sheme s končnico.xsd. Pri tem moramo paziti, da lokacija naše sheme nima presledkov, ker vsak presledek šteje kot začetek imena sheme. Na primer, če bi se lokacija sheme nahajala na G:\Faks\Diploma\XML Vaje\knjiznica, shema pa bi bila poimenovana knjiznica.xsd, bi razčlenjevalnik kode v primeru definiranja atributa xsi_schemalocation G:\Faks\Diploma\XML Vaje\knjiznica\knjiznicaShema knjiznicashema.xsd javil napako, saj za prvo lokacijo G:\Faks\Diploma\XML ne bi našel.xsd dokumenta. V spodnjem primeru smo tako definirali dve shemi. Privzeta shema nima predpone, druga pa ima predpono oseba. Pri vseh elementih, ki se nanašajo na to shemo, je potrebno pisati predpono oseba. Na primer <oseba:ime>andreja</oseba:ime>. <knjiznica xmlns="g:\faks\diploma\xml_vaje\knjiznica\knjiznicashema" xmlns:oseba="g:\faks\diploma\xml_vaje\knjiznica\knjiznicaclanishema" xmlns:xsi=" xsi:schemalocation="g:\faks\diploma\xml_vaje\knjiznica\knjiznicashema knjiznicashema.xsd"> Ko smo definirali sheme v XML dokumentu, moramo v vseh shemah definirati tudi vsa imenska področja in uvoziti vse sheme, ki jih potrebujemo (v našem primeru tisto imensko področje, ki se nanaša na xmlns:oseba). Najprej bomo začeli z definiranjem sheme, ki se nahaja na privzetem imenskem področju. Večino atributov smo že omenili, nov je le

20 12 targetnamespace, s katerim povemo, katero imensko področje (shema) je privzeta. Shemo uvozimo z elementom <xs:import>, v katerem najprej definiramo atribut namespace, kjer zapišemo, kje se nahaja uvožena shema, in nato v atributu schemalocation napišemo ime sheme s končnico.xsd. <xs:schema xmlns:xs=" xmlns="g:\faks\diploma\xml_vaje\knjiznica\knjiznicashema" xmlns:oseba="g:\faks\diploma\xml_vaje\knjiznica\knjiznicaclanishema" targetnamespace="g:\faks\diploma\xml_vaje\knjiznica\knjiznicashema" elementformdefault="qualified" attributeformdefault="unqualified"> <xs:import namespace="g:\faks\diploma\xml_vaje\knjiznica\knjiznicaclanishema" schemalocation="knjiznicaclanishema.xsd"/> V naši definiciji je sedaj potrebno tudi definirati atributa elementfromdefault in attributefromdefault, saj je potrebno pred elementi v shemi pisati predpono imenskega področja (v našem primeru oseba). Elemente, ki se nato sklicujejo na to imensko področje, zapišemo kot: <xs:element name="clan" type="oseba:tipclani" maxoccurs="unbounded"/> pri čemer povemo, da je element <clan> tipa tipclani in da naj ga poišče v imenskem področju oseba. V uvoženi shemi imenska področja definiramo na isti način, kot v privzeti shemi, le da pri atributu targetnamespace zapišemo, kje se ta shema nahaja. <xs:schema xmlns:xs=" xmlns="g:\faks\diploma\xml_vaje\knjiznica\knjiznicaclanishema" targetnamespace="g:\faks\diploma\xml_vaje\knjiznica\knjiznicaclanishema" elementformdefault="qualified" attributeformdefault="unqualified"> V XML shemi so pomembni trije gradniki: <xs:schema>, <xs:element> in <xs:attribute>. Shemo začnemo z <xs:schema>, v katerem tudi deklariramo imenska področja. Nadaljujemo z deklaracijo elementov in atributov. Obstajata globalna in lokalna deklaracija elementov. Globalna je takoj za <xs:schema> in je korenski element v XML dokumentu. Pri globalnemu elementu ne moremo deklarirati minoccurs in maxoccurs, kar lahko uporabljamo samo pri lokalni elementih in bomo razložili kasneje. Lokalni elementi so gnezdeni znotraj strukture sheme. Globalna deklaracija elementa je tudi <xs:annotation>, ki nam omogoča dodajanje komentarjev o shemi. Ta element ima dva

21 13 gradnika. Prvi je <xs:documentation>, ki omogoča komentarje, drugi je <xs:appinfo>, kjer napišemo dodatne informacije za procesiranje dokumenta. Shemo lahko pišemo kot medvrstično (inline), kjer je vse napisano v enakem zaporedju, kot si sledijo elementi v XML dokumentu (Slika 2.14). Ta način je pregleden za branje, kadar je kratka. Če je predolga, postane nepregledna. Za lepšo preglednost lahko uporabimo globalne elemente in globalne tipe. Slika 2.14: Primer uporabe medvrstičnega pisanja sheme. Element ima več atributov, s katerimi ga deklariramo. Najbolj pogosti so: name: povemo, kateri element v XML dokumentu deklariramo. type: je izbirni atribut, s katerim povemo, kakšnega tipa je element. Ponavadi je to string, vendar lahko v shemah deklariramo svoje podatkovne tipe, na katere se nato sklicujemo tukaj. ref: če smo element deklarirali drugje v dokumentu. minoccurs: najmanj kolikokrat se mora element pojaviti. maxoccurs: največ kolikokrat se lahko element pojavi.

22 14 Atributa minoccurs in maxoccurs sta podobna ponovitvam elementa v DTD, vendar je tukaj uporaba bolj primerna. Pri DTD smo imeli samo tri izbire, tukaj pa se nam izbira poveča. Privzeta vrednost pri obeh je 1. Če izberemo vrednost unbound, ima neskončno ponovitev, lahko pa sami določimo število ponovitev. Na primer, maxoccurs="5" nam pove, da ne smemo imeti več kot pet elementov. Lahko tudi uporabimo oba atributa in napišemo minoccurs="3" maxoccurs="10", kar pomeni, da ne smemo imeti manj kot tri elemente in ne več kot deset elementov. Elemente delimo na kompleksne (<xs:complextype>) in enostavne (<xs:simpletype>). V enostavnem tipu (Slika 2.15), v katerem ponavadi deklariramo omejitve, so dovoljeni štirje elementi <xs:annotation>, <xs:restiction>, <xs:list> in <xs:union>. Prvi, <xs:annotation>, kot je bilo že razloženo, nam omogoča dodajanje komentarjev in podrobnosti o aplikaciji. Če želimo definirati seznam vrednosti, uporabimo <xs:list>. Element <xs:union> uporabimo, kadar želimo imeti zbirko enostavnih elementov v enem elementu. [6] Najbolj uporabna je omejitev (<xs:restriction>). Pri tem povemo, kaj dovoljujemo v vsebini elementa XML dokumenta ali kako to dovoljujemo (Tabela 2.3). Slika 2.15: Primer enostavnega elementa minexclusive vrednost v XML dokumentu mora biti večja od podane vrednosti. Na primer, starost ne more biti nikoli 0 ali manjša od 0, zato zapišemo <xs:minexclusive value="0"/>. S tem smo definirali, da mora biti vsebina elementa <starost> večja od 0. maxexclusive vrednost v XML dokumentu mora biti manjša od podane vrednosti. mininclusive vrednost v XML dokumentu mora biti večja ali enaka od podane vrednosti. maxinclusive vrednost v XML dokumentu mora biti manjša ali enaka od podane vrednosti.

23 15 pattern izgled vsebine elementa. Za telefon lahko zapišemo: <xs:pattern value="[0-9]2-[0-9]{3} [0-9]{4}"/> Najprej moramo uporabiti številke od 0 do 9, in to samo dvakrat, nato mora slediti vezaj, za njim pa najprej tri številke, presledek in štiri številke. lenght število dovoljenih znakov. minlenght najmanjše dovoljeno število znakov. maxlenght največje dovoljeno število znakov. enumeration seznam dovoljenih vrednosti. Tabela 2.3: Seznam restrikcij [7] V kompleksnem tipu se pojavijo gnezdeni elementi in atributi. V večini primerih se pojavijo kot: zaporedje (<xs:sequence>): tako kot pri DTD je tudi tukaj pomemben vrstni red elementov. <xs:sequence> <xs:element name="ulica"/> <xs:element name="postnast"/> <xs:element name="kraj"/> </xs:sequence> izbira (<xs:choose>): izberemo enega od elementov. <xs:choice/> <xs:element name="knjiga"/> <xs:element name="revija"/> <xs:element name="publikacija"/> </xs:choice> vse (<xs:all>): katerikoli element se lahko pojavi v poljubnem zaporedju. <xs:all> <xs:element name="ulica"/> <xs:element name="postnast"/> <xs:element name="kraj"/> </xs:all> Poleg teh imamo lahko elemente, ki ne vsebujejo elementov, se pravi prazne (empty) elemente. Na primer, da imamo pri članu element <sposoja>, v katerem imamo samo atribut idpublikacije.

24 16 <xs:element name="sposoja" minoccurs="0"> <xs:complextype> <xs:attribute name="idpublikacije" use="optional"/> </xs:complextype> </xs:element> V kompleksnem tipu lahko definiramo tip, v katerem so samo elementi (Slika 2.16). Nanj se sklicujemo s type atributom (Slika 2.17), ki mora imeti isto ime, kot je definirano v atributu name kompleksnega elementa. Poleg tega lahko v tem primeru uporabimo tudi mixed atribut za kompleksni tip elementa. Ta atribut nam omogoča, da v elementu definiramo različne tipe. V spodnjem primeru imamo element <postnast>, za katerega želimo, da je izključno iz številk, zato definiramo type="xs:integer". Slika 2.16: Definicija kompleksnega tipa mixed, v katerem imamo samo elemente Slika 2.17: Sklicevanje na tip Če pri elementu ne smemo uporabiti gnezdenih elementov, uporabimo elemente z enostavno vsebino (xs:simplecontent) (Slika 2.18). V <xs:simplecontent> lahko definiramo samo <xs:annotation>, <xs:extension> in <xs:restriction>. Ponavadi ga uporabljamo za definicijo atributov. Slika 2.18: Primer elementa z enostavno vsebino S skupino (<xs:group>) omogočimo sekvencam (<xs:sequence>) in izbiram (<xs:choice>) grupiranje elementov ter tako dobimo en element z unikatnim imenom. Kjer želimo nato to skupino uporabiti, se v tistem elementu sklicujemo nanjo z <xs:group ref="">. Atribut ref mora imeti isto ime, kot ga ima atribut ime v skupini.

25 17 <xs:group name="datumsp"> <xs:sequence> <xs:element name="datumsposoje" minoccurs="0" maxoccurs="1"/> <xs:element name="datumvrnitve" minoccurs="0" maxoccurs="1"/> </xs:sequence> </xs:group> Sklicevanje na skupino: <xs:group ref="datumsp"/> Za deklaracijo atributa uporabimo <xs:attribute>. <xs:attribute name="idpublikacije" use="optional"/> Atribut lahko zapišemo globalno ali lokalno. Če ga napišemo globalno, se nanj sklicujemo z atributom ref. Pri lokalnem zapisu atribut zapišemo kot del kompleksnega tipa elementa. Atribut ima več parametrov, najpogostejši so: ime (name): ime atributa v XML dokumentu. id: unikatno ime za ID. Ta ID ima enak pomen kot pri DTD. ref: globalni atribut se lahko nanaša na druge deklaracije v isti shemi. Če uporabimo ref, ne moremo uporabiti parametra name. uporaba (use): nam pove uporabo atributa. Če moramo atribut vedno napisati v element, uporabimo required. Pri opcijski uporabi napišemo optional. Lahko pa v celoti prepovemo uporabo atributa in napišemo prohibited. Za deklaracijo atributov na enem mestu, uporabimo <xs:attributegroup>. To je skupina atributov, ki jo deklariramo globalno, ima unikatno ime in se nato nanjo sklicujemo z ref v strukturi sheme. Elemente lahko izpeljemo tudi iz drugih elementov in je podobno, kot pri objektnem programiranju dedovanje. Pri tem uporabimo dva elementa <xs:extension> in <xs:restriction>. S prvim, <xs:extension>, imamo izpeljavo z razširitvijo. V tem primeru imamo osnovni element, ki ga nato razširimo z novimi elementi ali atributi. Ko smo napisali osnovni element, se v izpeljanem elementu <xs:extention> nanj sklicujemo z atributom base="" (Slika 2.19). Izpeljan element vsebuje vse, kar smo definirali v osnovnem elementu in izpeljanem elementu. S tem si olajšamo delo, saj nam ni potrebno ponavljati elementov ali atributov. Je praktičen, ko moramo v XML dokument dodati element, ki je podoben že napisanemu elementu v shemi. V shemi samo izpeljemo element z novimi specifikacijami.

26 18 Slika 2.19: Izpeljava z razširitvijo Pri drugem, <xs:restriction>, pa je izpeljava z omejitvijo. Deluje podobno, kot izpeljava z razširitvijo, le da moramo pri definiciji izpeljanega elementa ponovno zapisati vse elemente, ki so v osnovnem elementu, s tem da jih omejimo (Slika 2.20). Slika 2.20: Izpeljava z omejitvijo

27 19 V zgornjih dveh primerih smo pri definiciji kompleksih elementov uporabili še dva atributa final in abstract. Če uporabimo atribut abstract pomeni, da smejo biti elementi, uporabljeni v XML dokumentu, izpeljani samo iz tega tipa. Atribut final nam pove, da iz tega elementa ne moremo izpeljati novega tipa. Pri atributu final nato izbiramo, na kateri element se nanaša atribut. Pri izbiri #all pomeni, da velja za vse, pri restriction, velja samo za restrikcije in pri extention, samo za razširitve. 2.4 XSL Transformacije Razširljiv jezik za oblikovanje je sestavljen iz dveh delov: XSL transformacije (XSLT, XSL Transformations) in XSL oblikovanje objektov (XSL-FO, XSL Formating Objects). XSLT uporabljamo, kadar želimo XML dokumente preoblikovati v drug XML dokument ali v kakšno drugo obliko. XSLT je navaden XML dokument, ki vsebuje pravila za transformacijo. Nato XSLT procesor primerja vsak element v XML dokumentu s šablono v XSLT dokumentu in, če najde ustrezni element, le tega predela v nov dokument. Ko želimo uporabiti transformacijo, zapišemo deklaracijo transformacije na začetek XML dokumenta. Pri tem uporabimo stylesheet ali transform. <xsl:stylesheet version="1.0" xmlns:xsl=" Stylesheet zgolj pretvori vso vsebino v izhodni dokument brez kakršne koli oblike. Če imamo XML dokument <knjiznica> <knjiga> <naslov>osnove XML</naslov> <avtor>marko Kos</avtor> </knjiga> <knjiga> <naslov>objektno programiranje</naslov> <avtor>andreja</avtor> </knjiga> </knjiznica> nam v izhodnem dokumentu izpiše: Osnove XMLMarko KosObjektno programiranjeandreja. To je zelo nepregledno, saj nam med elementi ne izpiše nobenih presledkov. Edini presledki so tisti, ki so v vsebini elementa. Če želimo zapisati, kateri

28 20 element v XML dokumentu želimo preoblikovati, uporabimo element <xsl:template>. S tem procesorju povemo, kaj želimo, da naredi z elementom, ko ga najde. <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="knjiga">knjiga</xsl:template> </xsl:stylesheet> V tem primeru bo procesor vsakič, ko bo v vhodnem dokumentu našel element <knjiga>, v izhodnem dokumentu napisal Knjiga, ne glede na to, kakšno vsebino imamo v elementu vhodnega dokumenta. To pa seveda ni namen naše transformacije. Če želimo dobiti vsebino elementa, uporabimo <xsl:value-of> (Slika 2.21). S tem povemo, vsebino katerega elementa naj transformira. Slika 2.21: Primer XSLT dokumenta V izhodnem dokumentu pa se nam izpiše: Osnove XML Marko Kos Objektno programiranje Andreja XSLT procesor bere XML dokument od vrha, se pravi od korenskega elementa. Vendar včasih želimo, da se en element pojavi pred drugim. V ta namen uporabljamo <xsl:applytemplates>. V predlogo (<xsl:template>) definiramo, kako naj se določen element pojavi, in ko želimo to predlogo tudi uporabiti, se nanjo sklicujemo. Kje zapišemo <xsl:template>, je vseeno. Lahko ga zapišemo pred ali po predlogi za korenski element. Pri definiciji <xsl:template> uporabimo atribute (Tabela 2.4). match XPath s katerim poiščemo vozlišče name ime, s katerim pokličemo predlogo priority prioriteta, če se več vozlišč ujema s predlogo Tabela 2.4: Seznam atributov, ki jih ima <xsl:template>

29 21 Za vhodni XML dokument (Slika 2.22) lahko napišemo XSLT transformacijo, pri kateri želimo imeti HTML izhodni element. V ta namen uporabimo HTML značke. V našem primeru lahko povemo, da naj naslov knjige zapiše z naslovom 1 (h1). V novi vrstici naj nato izpiše vrednost atributa ISBN, do katerega dostopamo z Za izpis avtorja definiramo izpis z novim <xsl:template>. Pri tem napišemo, da želimo imeti avtorja izpisanega v novem odstavku, pri čemer uporabimo HTML značko <p>. Definiramo še, da naj se najprej izpiše priimek in nato ime, loči pa naj ju vejica (Slika 2.23). Slika 2.22: Vhodni XML dokument Slika 2.23: XSLT transformacija z uporabo novega <xsl:template> za izpis avtorja Če želimo pretvoriti XML v XML, potrebujemo za začetek <xsl:element>. S tem povemo ime elementa v izhodnem XML dokumentu. Do elementov v vhodnem dokumentu se sprehajamo s pomočjo XPath. Za naš primer bi XSLT napisali tako, da bi najprej z <xsl:element> določili korenski element, nato bi z <xsl:for-each> izbrali naš element v

30 22 vhodnem dokumentu in mu ponovno z <xsl:element> določili ime elementa v izhodnem dokumentu. Do vrednosti pa dostopamo z <xsl:value-of> (Slika 2.24). Nekaj uporabnih elementov je opisanih v Tabela 2.5. Nekaj uporabnih elementov: [8] xsl:attribute xsl:attribute-set xsl:call-template xsl:copy xsl:copy-of Slika 2.24: XSLT transformacija iz XML v XML doda atribut v element. <xsl:attribute name="idpub"> <xsl:value-of select="knjiznica/knjiga/@isbn"/> </xsl:attribute> zbirka deklaracij atributov, kjer napišemo, na kakšen način naj se atributi izpišejo. Attribute-set pokličemo z <use-attribute-sets>. Na primer, v našem XML dokumentu imamo v elementu <avtor> poleg <ime> in <priimek> še <spol>, kot atribut pa imamo id. Spol in id želimo uporabiti v izhodnem dokumentu kot atribut. <xsl:attribute-set name="seznamatributov"> <xsl:attribute name="idavtorja"><xsl:value-of select="@id"/></xsl:attribute> <xsl:attribute name="naziv"> <xsl:if test="spol='z'">zenska</xsl:if> <xsl:if test="spol='m'">moski</xsl:if> </xsl:attribute> </xsl:attribute-set> Atribut list nato kličemo v elementu <xsl:element name="oseba" use-attribute-sets="seznamatributov"/> prikliče predlogo po imenu, podobno kot <xsl:apply-template>. kopira vsebino vozlišča in tudi vsebino njegovih otrok, vendar ne atributov. kopira, kar mu določimo v select atributu. Kopira specifično vozlišče, z

31 23 vsemi otroki, atributi. xsl:choose se uporablja skupaj z <xsl:when> in <xsl:otherwise>. <xsl:otherwise> je sicer opcijski, vendar če ga nimamo podanega in če nobeden od testnih (<xsl:when>) pogojev ni izpolnjen, element ne izpiše ničesar. xsl:for-each s select atributom določimo vozlišče, na kateremu uporabimo predlogo ali mu dodamo nov element. xsl:if predloga se bo izvršila samo, če bo izpolnjen pogoj v test atributu. xsl:import uvozi predlogo, ki se nahaja v atributu href. <xsl:import> moramo napisati takoj pod <xsl:stylesheet>. <xsl:import> ima prednost pred kakršnokoli predlogo v tem dokumentu. xsl:include kopira predlogo, ki je podana v atributu href. Tudi tukaj moramo <xsl:include> zapisati takoj pod <xsl:stylesheet>. xsl:sort se lahko pojavi kot otrok za <xsl:apply-template> ali <xsl:for-each>. Z atributom select povemo, po katerem vozlišču naj sortira. Atribut order ima vrednosti padajoče ali naraščajoče. Atribut case-order pa pomeni ali naj imajo prednost velike ali male črke. Tabela 2.5: Nekaj uporabnih elementov 2.5 XPath Z XPath identificiramo oziroma naslavljamo določene dele XML dokumenta. XML je zgrajen iz vozlišč, od katerih imajo nekatera še svoja vozlišča. XPath omogoča, da se po teh vozliščih sprehajamo. Pozna sedem vozlišč. [9] Korensko vozlišče (root node) je koren drevesa. Nima vsebine, pod njim so vozlišča elementov. Za vsak element v dokumentu obstaja vozlišče elementa (element node). Otroci vozlišča elementa so lahko nova vozlišča elementov, vozlišča komentarjev, vozlišča za procesiranje navodil in za vsebino še tekstovna vozlišča. Tekstovno vozlišče (text node) vsebuje tekst, navodila za procesiranje in komentarje med obema značkama (< >). Vozlišče atributov (attribute nodes) ima vsako vozlišče elementa. Atribut ni otrok starševskega elementa, čeprav je element starš atributa. Elementi nimajo nikoli istih atributov. Za vsako vozlišče komentarjev obstaja vozlišče komentarjev (comment nodes).

32 24 Če imamo v dokumentu kakšno navodilo za procesiranje oziroma uporabljamo kakšen drug jezik, potem se takšno vozlišče imenuje vozlišče navodil za procesiranje (processinginstruction nodes). Vsako vozlišče imenskih prostorov pa imenujemo vozlišče imenskih prostorov (namespace nodes). Celoten XPath temelji na drevesni strukturi, na vrhu katere je korensko vozlišče (root node), ki pa ni isto kot korenski element. Korensko vozlišče vsebuje korenski element, imenski prostor, vse komentarje in vse kar se pojavi med značkama (tags) korenskega elementa. Najbolj pomembna je lokacija korenskega vozlišča. Do njega dostopamo s poševnico /. Poševnica je absolutna pot do korena, saj bomo ne glede na to, kje se nahajamo v dokumentu, s tem vedno prišli h korenu. Do otrok se preprosto sprehajamo po drevesu s poševnico. Za lažjo razlago operatorjev naslavljanja (Tabela 2.6, Tabela 2.7) bomo uporabili naslednji XML dokument: <knjiznica> <knjiga ISBN="1234"> <naslovknjiga>osnove XML</naslovKnjiga> <avtor id="1"> <ime>marko</ime> <priimek>kos</priimek> <spol>m</spol> <naslov> <ulica>polje</ulica> <stevilka>12</stevilka> </naslov> </avtor> </knjiga> <!-- komentar 1 --> <knjiga ISBN="234"> <naslovknjiga>objektno programiranje</naslovknjiga> <avtor id="2"> <ime>andreja</ime> <priimek>mavric</priimek> <spol>z</spol> </avtor> </knjiga> <razno> <!-- komentar 2 --> <medij vrsta="dvd" idmedija="m1"> <zvrst naziv="dokumentarec"> <naslovmedij> Faraoni</naslovMedij> <leto>12/03/1999</leto> <podatki> <direktor>gregor</direktor> <glasba>zimmer</glasba> <producent>matej</producent> </podatki>

33 25 </zvrst> </medij> <medij vrsta="cd" idmedija="m2"> <zvrst naziv="drama"> <naslovmedij> Ostanki dneva</naslovmedij> <leto>25/12/1990</leto> <podatki> <direktor>ivory</direktor> <glasba>robbins</glasba> <producent>merchant</producent> </podatki> </zvrst> </medij> <medij vrsta="mp3" idmedija="m3"> <zvrst naziv="rock"> <naslovmedij> Light my fire</naslovmedij> <leto>01/05/ </leto> <hitrost>256</hitrost> <podatki/> </zvrst> </medij> </razno> <clan clanska="6578"> <imeclana>karmen</imeclana> <priimekclana>horvat</priimekclana> <telefon> </telefon> </clan> </knjiznica> Operatorji naslavljanja: [10] / lokacija korenskega vozlišča in tudi posamezna pot med elementi. knjiznica/knjiga/avtor/naslov/ulica // izberemo lahko katerikoli element in nam pri tem ni potrebno napisati celotne //producent Rezultat: <producent> Matej; <producent>merchant dostop do atributa. /knjiznica/knjiga/@isbn Rezultat: ISBN= 1234; ISBN= 234 * dostop do vseh elementov trenutnega vozlišča. /knjiznica/knjiga/* Rezultat: <naslovknjiga>osnove XML, <avtor>id="1"; <naslovknjiga>objektno programiranje, dostop do vseh atributov v danem staršu.

34 26 Rezultat: vrsta= dvd, idmedija= m1; vrsta= cd, idmedija= m2; vrsta= mp3, idmedija= m3 dostop do več lokacij. Na primer, da želimo dostopati do elementov <naslovmedij>, <leto> in <ime>. //podatki/producent //zvrst/leto //avtor/ime Rezultat: <ime>marko; <ime>andreja <leto>12/03/1999; <producent>matej <leto>25/12/1990; <producent>merchant <leto>01/05/1980. naslavlja trenutno vozlišče. //medij/zvrst/leto/. Rezultat: <leto>12/03/1999; <leto>25/12/1990; <leto>01/05/ naslavlja nadrejeno vozlišče. //medij/zvrst/leto.. Rezultat: <zvrst>naziv="dokumentarec"; <zvrst>naziv="drama"; <zvrst>naziv="rock" Če se želimo premakniti še višje, uporabimo / in.. dokler ne pridemo na želeno mesto. [ ] za filtriranje. Včasih nas ne zanima samo vozlišče, ampak nas zanimajo bolj specifične stvari. Na primer, da nas zanima: 1. avtor z imenom Andreja //avtor[ime="andreja"] Rezultat: id="2" 2. ime člana, z določeno telefonsko številko //imeclana[../telefon=" "] Rezultat: Karmen 3. ime avtorja z atributom //ime[../@id="1"] Rezultat: Marko Tabela 2.6: Skrajšani operatorji

35 27 Zgoraj našteti operatorji spadajo v skupino skrajšanih operatorjev (abbreviated location paths) (Tabela 2.6:). So zelo enostavni za pisanje in jih uporabljamo predvsem pri transformacijah (XSLT). Poleg teh poznamo tudi neskrajšane operatorje (unabbreviated location paths) (Tabela 2.7:). Čeprav so obširnejši kot skrajšani operatorji, pa so izrazi bolj enostavni oziroma vsakdanji. Pri vsaki lokaciji potrebujemo glavno os in vozlišče, občasno pa še pogoj za filtriranje. Os nam pove, v kateri smeri iščemo vozlišče; vozlišče nam pove, katero vozlišče vključimo v lokacijo; pogoj za filtriranje pa (tako kot pri skrajšanih operatorjih) poveča kriterije za iskanje pravega elementa, atributa in podobno. Pri skrajšanih operatorjih bi pot do elementa <ulica> napisali: /knjiznica/knjiga/avtor/naslov/ulica Pri neskrajšanih operaterjih pri vsakem vozlišču obenem povemo še vlogo vozlišča: /child::knjiznica/child::knjiga/child::avtor/child::naslov/child::ulica Tak zapis pomeni, da naj gre do otroka <knjiznica>, nadaljuje do otroka <knjiga>, naprej do otroka <avtor>, mimo otroka <naslov>, kjer nas zanima otrok <ulica>. Do atributov dostopamo z besedo attribute: /child::knjiznica/child::razno/child::medij/child::zvrst/attribute::naziv kjer nam vrne rezultat vse atribute elementa <naziv>: dokumentarec, drama in rock. Nekaj neskrajšanih operatorjev: [11] child izbere otroke vozlišča. 1. //child::clan Rezultat: <clan>clanska="6578" 2. //child::podatki/child::* Rezultat: vrne vse otroke elementa <podatki> <direktor>gregor, <glasba>zimmer, <producent>matej; <direktor>ivory, <glasba>robbins, <producent>merchants following-sibling izbere vozlišča, ki sledijo elementu in imajo istega očeta. Pri tem ne [12] izbere atributov. Na primer, da nas zanimajo: 1. vsi elementi, ki sledijo elementu <direktor>, pri tem pa morajo pripadati istemu očetu kot <direktor> //direktor/following-sibling::* Rezultat: <glasba>zimmer, <producent>matej;

36 28 preceding-sibling [13] ancestor [14] <glasba>robbins, <producent>merchants 2. vsi elementi, ki sledijo elementu <ime>. V tem primeru nam kot rezultat poda tudi prazen element <naslov>, saj ima ta še otroke. //ime/following-sibling::* <priimek>kos, <spol>m, <naslov> ; <priimek>mavric, <spol>z izbere vozlišča, ki so pred elementom in pripadajo istemu staršu. Dokument začne brati od spodaj navzgor. //naslov/preceding-sibling::* Rezultat: <spol>m, <priimek>kos, <ime>marko izbere vse prednike trenutnega vozlišča. Dokument začne brati od spodaj navzgor. //avtor/ancestor::* Rezultat: <knjiga>isbn="234", <knjiga>isbn="1234", <knjiznica> following [11] preceding [11] izbere vsa vozlišča, ki sledijo koncu izbranega vozlišča. Pri tem ne izbere potomcev, atributov. //leto/following::* Rezultat: <podatki>, <direktor>, <glasba>, <producent>; <medij>, <zvrst>, <naslovmedij>, <leto>, <podatki>, <direktor>, <glasba>, <producent>; <medij>, <zvrst>, <naslovmedij>, <leto>, <hitrost>, <podatki/>; <clan>, <imeclana>, <priimekclana>, <telefon>, <eposta> izbere vsa vozlišča, ki so pred izbranim vozliščem. Dokument začne brati spodaj navzgor in pri končni znački. V našem primeru je element <spol> otrok elementa <avtor>, ta pa je otrok elementa <knjiga>. Tako začne brati pri spolu drugega avtorja, pri katerem najde tri končne značke <priimek>, <ime> in <naslovknjiga>. Čeprav je nad elementom <ime> element <avtor>, pa tega ne izbere, ker nima končne značke. Element <avtor> izbere

37 29 šele pri prvem avtorju, ker začne brati od konca, pri katerem pa si končne značke sledijo </knjiga>, </avtor>, </naslov> itd. //spol/preceding::* Rezultat: <priimek>, <ime>, <naslovknjiga>, <stevilka>; <ulica>, <naslov>, <spol>, <priimek>, <ime>, <avtor>, <naslovknjiga>, <knjiga>, descendant [11] izbere vse potomce. //avtor/descendant::* Rezultat: <ime>marko, <priimek>kos, <spol>m, <naslov>, <ulica>polje, <stevilka>12; <ime>andreja, <priimek>mavric, <spol>z ancestor-or-self izbere sebe in vsa predhodna vozlišča. Dokument začne brati od spodaj [15] navzgor. //telefon/ancestor-or-self::* Rezultat: <telefon>, <clan>, <knjiznica //hitrost/ancestor-or-self::* Rezultat: <hitrost>, <zvrst>, <medij>, <razno>, <knjiznica> //producent/ancestor-or-self::* Rezultat: <producent>, <podatki><zvrst>, <medij>, <producent>, <podatki><zvrst>, <medij>, <razno>, <knjiznica> ancestor izbere vsa predhodna vozlišča. Je podoben prejšnjemu primeru, le da ne izbere še samega sebe. Prav tako začne brati dokument spodaj navzgor. //producent/ancestor::* Rezultat: <podatki>, <zvrst>, <medij>, <podatki>, <zvrst>, <medij>, <razno>, <knjiznica> Tabela 2.7: Neskrajšani operatorji Operatorji (location paths) lahko poleg vozlišč vrnejo tudi številke, logične izraze ali niz znakov. Pri številkah lahko uporabljamo računske operacije, kot so seštevanje (+),

38 30 odštevanje (-), množenje (*), deljenje (div) in deljenje z ostankom (mod). Logični izraz ima samo dva rezultata true in false. Elemente in atribute lahko med seboj tudi primerjamo, kar nam omogočajo primerjalni operatorji, med katerimi so =,!=, <, >, <=, >=, and in or. [16] Te operatorje uporabljamo v izrazih za filtriranje, pogosto pa tudi v izrazu <xsl:if> in <xsl:when>. XPath pa omogoča tudi uporabo funkcij, ki jih lahko uporabljamo za filtriranje ali pa v samih izrazih (Tabela 2.8). Za informacijo o vozliščih uporabljamo funkcije vozlišče (node-set functions). Pri logičnih funkcijah (boolean functions) imamo vedno samo dve možnosti rezultata. Če želimo razbiti določen niz ali ugotoviti dolžino posameznega elementa, uporabimo znakovne funkcije (string functions). Za operacije s številkami pa uporabimo funkcije številk (number functions). position() nam pove, kje se vozlišče nahaja. Poleg tega nam lahko vrne vozlišče, ki se nahaja na določenem indeksu, pri čemer lahko uporabljamo primerjalne operatorje. 1. //knjiga[position()] Rezultat: <knjiga> ISBN="1234", <knjiga> ISBN="234" 2. //knjiga[position() < 2] Rezultat: <knjiga> ISBN="1234" last() vrne zadnji element. //medij[last()] Rezultat: <medij> vrsta="mp3", idmedija="3" count() nam vrne število izbranih elementov. count(//medij) Rezultat: 3 starts-with() ima dva argumenta, prvega primerja z drugim. Če se prvi argument ujema, vrne true, drugače vrne false. starts-with("andreja", "Nd") Rezultat: false contains() ima prav tako dva argumenta. Če prvi argument vsebuje drugi argument, potem vrne true, v nasprotnem primeru vrne false. Je case sensitive. 1. contains("gregor", "Gr")

39 31 Rezultat: true 2. contains("gregor", "gr") Rezultat: false substring-before() nam vrne niz prvega argumenta, ki se pojavi pred drugim. substring-before('ostanki dneva', ' ') Rezultat: Ostanki substring-after() nam vrne niz prvega argumenta, ki se pojavi za drugim argumentom. substring-string('ostanki dneva', ' ') Rezultat: dneva substring() imamo tri argumente. Prvi je niz, ki ga želimo razdeliti; drugi je začetna pozicija, kjer bomo niz razdelili; tretji pa, koliko niza naj nam vrne. Tretji argument je opcijski in v tem primeru nam vrne vse, kar je za začetno pozicijo (za drugim argumentom). substring('ostanki dneva', 2, 4) Rezultat: stan string-lenght() vrne dolžino argumenta 1. //medij/string-length() Rezultat: 34; 43; //medij[position()=1]/string-length() Rezultat: 34 round() zaokroži številko najbližje številu, ki smo jo podali kot argument. floor() vrne največjo številko, ki je manjša od argumenta. ceiling() vrne najmanjšo številko, ki je večja od argumenta. Tabela 2.8: Funkcije 3. ectd 3.1 CTD OKOLJE CTD (Common Technical Document) je skupek specifikacij, za sestavo registracijske dokumentacije v farmacevtski industriji. Predpisana je iz strani ICH (The International

40 32 Conference on Harmonisation). Specifičen je glede na regijo: posebej za Evropo, za Združene države Amerike in za Japonsko. Razdeljen je na 5 modulov: administrativni modul 1, pregled in povzetki modulov 3 do 5 modul 2, kakovost (farmacevtska dokumentacija) modul 3, varnost (toksikološke študije) modul 4, učinkovitost (klinične študije) modul 5. CTD specifikacija ne obravnava modul1, kar je razvidno is spodnje slike (Slika 3.1). Slika 3.1: CTD trikotnik Specifikacija obravnava vsak modul po poglavjih. Za vsak modul določa njegovo bistvo, tj. kako si morajo slediti poglavja in podpoglavja. V vsakem poglavju je napisan tudi komentar, ki nam pojasnjuje, kaj je potrebno poglavju priložiti. Tako nam specifikacija pove, da se mora modul 2 začeti z uvodom, nadaljevati z vsemi pregledi za modul 3 (quality overall summary), nato sledi pregled za modul 4 in 5 (noclinical in clinical overview) in na koncu še povzetka za modul 4 in 5 (nonclinical in clinical summary). Modul 3 se začne s poglavjem o aktivni substanci. Vsebuje naslednja podpoglavja: splošne informacije (General information); proizvodnja aktivne substance (Manufacture); karakterizacija (Characterization); pregled aktivne substance (Control of drug substance);

41 33 referenčni standardi (Reference standards); shranjevanje in pakiranje (Container closure system); stabilnost (Stability). Poglavje o produktu vsebuje naslednja podpoglavja: opis in sestava produkta (Description and composition of drug product); farmacevtski razvoj (Pharmaceutical development); proizvodnja produkta (Manufacture); pregled neaktivnih substanc (Control of excipients); pregled produkta (Control of drug product); referenčni standardi (Reference standards); shranjevanje in pakiranje (Container closure system); stabilnost (Stability). Tem poglavjem sledijo priloge in specifične informacije, ki so zahtevane s strani regulatornih organov v posamezni regiji. Na koncu sledita še poglavje o toksikoloških študijah (modul 4), in poglavje o kliničnih študijah (modul 5). 3.2 DEFINICIJA ectd ectd je format, ki predpisuje, kako je potrebno pripraviti dokumentacijo za regulatorne organe. Celotna struktura ectd temelji na modulih, sekvencah in dokumentih. Vlagatelj (industrija) začne celoten proces z osnovno vlogo za pridobitev registracije in v teku registracijskega postopka dodaja in spreminja dokumente. ectd nam omogoča, da vsem dokumentom sledimo. Osnovna vloga je sekvenca 0000 in vsako dodajanje ali spreminjanje dokumentov pomeni novo sekvenco (0001, 0002 itd.). Za zgradbo ectd skrbi XML DTD. DTD opisuje hierarhično zgradbo glede na CTD in glede na definicijo v ICH M4 EWG. Vloga mora vsebovati tudi slogovno datoteko (stylesheet), ki vsebuje navigacijo skladno s kazalom in omogoča dostop do vseh dokumentov. Kako naj slogovna datoteka izgleda, je definirano v ICH M2 EWG. Prosilec sestavi vlogo lokalno. Ko vlogo odda, se ta uvozi na drugo lokacijo. [17]

42 STRUKTURA ectd Ker ectd temelji na XML, se je potrebno tudi tukaj držati določenih pravil glede strukture dosjeja. Vsaka mapa modula je sestavljena iz map poglavja, v katerih so nato dokumenti. ectd natanko določa, kako se morajo mape imenovati, saj je to imenovanje pomembno pri izdelavi DTD in XML strukture. Vsaka mapa in dokument ima unikatno ime, ki mora biti kratko. Specifikacija ectd vsebuje celoten seznam vseh dokumentov in njihovih imen, kako morajo bodo ti organizirani. Ta specifikacija nam omogoča, da zgradimo XML dokument. Za vsako poglavje je določena številka v CTD poglavju (3.2.S.1), CTD naslov (General information (name, manufacturer): name in manufacturer, ki ju napišemo v naslovu dokumenta, nam povesta ime substance oziroma produkta in ime proizvajalca), kako naj se element v XML dokumentu imenuje (m3-2-s-1-generalinformation) in relativno pot do dokumenta (m3/32-body-data/32s-drug-sub/substance-1- manufacturer-1/32s1-gen-info). Večina poglavij je organizirana na zgoraj opisan način, le da priredimo podatke glede na poglavje. Določena poglavja pa so nekoliko bolj specifična. Med te štejemo poglavje o neaktivnih substancah, poglavje o analitskih postopkih in poglavje o validacijah analitskih postopkih. Vsaka sekvenca mora imeti index.xml, v katerem je napisana celotna struktura modulov, MD5 s katero preverjamo ali se je dokument med pošiljanjem spremenil in ustrezni DTD, ki mora biti v mapi util. V tej mapi imamo tudi slogovno datoteko (stylesheet), ki jih potrebujemo. Za sestavo XML dokumenta sledimo petim korakom in v pomoč nam je seznam organiziranosti strukture: 1. Izberemo pravo značko za dokument. Na primer, za modul 2.4 izberemo značko <m2-4-nonclinical-overview>. 2. Pod tem elementov napišemo <leaf> element. 3. Za vsak dokument moramo napisati relativno pot. Na primer, za <m2-4-nonclinical-overview> je relativna pot m2/24-nonclin-over. 4. V vsakem <leaf> elementu moramo zapisati tudi <title> element. V našem primeru <title>non-clinical Overview>/title>. 5. Za vsak <leaf> element moramo določiti pravo vrednost atributov. (Tabela 3.1:). [18]

43 35 ID checksum checksum-type modified-file operation xlink_href Unikatni identifikator, ki se mora začeti s črko. Na primer: id34567 Checksum vrednost za dokument. Je rezultat algoritma, ki razbije dokument na 128 bitno kodo oziroma prstni odtis. Ta služi za preverjanje, ali se je dokument med operacijo oddajanja in sprejemanja spremenil. Že vsak najmanjši poseg v dokument spremeni MD5 datoteko. Uporabljen algoritem za checksum. Najbolj pogost je MD5. Ponavadi je vsaka MD5 datoteka predstavljena kot zaporedje 32 znakov v šestnajstiškem številčnem sistemu (9e107d9d372bb6826bd81d3542a419d6). Informacija, kje se nahaja dokument, ki ga spreminjamo. Tega atributa nimamo v sekvenci 0000, ampak le v nadaljnjih sekvencah. Atribut se nanaša na index.xml in na ID atribut <leaf> elementa, ki ga spreminjamo. Na primer, da v sekvenci 0003 spreminjamo dokument iz sekvence 0001 z atributom id123456, bo v tem primeru modifiedfile="../0001/index.xml#id123456" Določa operacijo, ki jo izvajamo nad dokumentom. Vrednosti operacij so: - new: nov dokument. Pomeni, da <leaf> tega dokumenta ne vpliva na <leaf> prejšnjih verzij. - replace: zamenjan dokument. Ta verzija dokumenta zamenja prejšnjo. <leaf> vsebuje tudi informacijo o prejšnji verziji dokumenta, se pravi v tem primeru imamo še atribut modifiedfile. - append: dodane informacije k dokumentu. Pomeni, da trenutnemu dokumentu dodamo še kakšne informacije oziroma dokument, kot jih ima dokument v prejšnji verziji <leaf>. - delete: pobrisan dokument. Pomeni, da dokumenta iz prejšnje verzije <leaf> ni več v trenutni verziji. Določa pot do dokumenta.

44 36 Na primer: 0001/m3/32-body-data/32s-drug-sub\substance-1- manufacturer-2/32s7-stab/stability-data.pdf Tabela 3.1: Seznam atributov za element <leaf> [15] V DTD definiramo element <leaf> globalno, v katerem povemo, da je sestavljen iz <title> in <link-text>. Slednji je opcijski in se ga redko uporablja. Definiciji elementa <leaf> sledi globalna definicija njegovih atributov (Slika 3.2). Večinoma uporabljamo atribute, ki so opisani v zgornji tabeli (Tabela 3.1). Slika 3.2: Definicija elementa <leaf> Kot smo že omenili, začnemo s sekvenco 0000, v kateri so vsi dokumenti, ki jih potrebujemo za začetno vlogo. Slika 3.3 predstavlja XML dokument za celoten dosje. Čeprav včasih nimamo dokumentov za vse module, pa je DTD vedno napisan v celoti. Tako v njem za vsak modul definiramo svoj element, v katerem pa imamo podelemente. Za vsak element moramo nato v zaporedju napisati najprej <leaf> element in nato vse elemente za posamezen modul. V DTD definiramo najprej <leaf> element in nato vsa

45 37 poglavja v modulih. Pri definiciji elementov v DTD uporabimo?, kar pomeni, da imamo lahko nič ali največ en element, razen pri <leaf> uporabimo *, kar pomeni, da ima lahko XML nič ali več elementov <leaf> (Slika 3.4). Poleg tega imamo še opcijski atribut att, ki je definiran globalno, v njem pa atribut tipa ID (Slika 3.5). Slika 3.3: XML dokument za celoten dosje (mapo 0000) Slika 3.4: Odgovarjajoči DTD za celoten dosje oziroma (mapo 0000) Slika 3.5: Definicija atributa att Najbolj enostaven za sestavo je modul 2, saj imamo za vsako poglavje načeloma en dokument oziroma nimamo podpoglavij, kot v modulu 3. XML dokument zgradimo tako, da imamo vsak dokument v svojih značkah (tags), ki povedo ime poglavja. Problem se pojavi pri poglavju 2.3, kjer imamo več dokumentov. Pri tem še vedno napišemo vsak dokument v svojo značko (Slika 3.6). V DTD definiramo obvezna atributa substance in manufacturer za aktivno substanco in opcijske atribute product-name, dosageform in manufacturer za produkt (Slika 3.7).

46 38 Slika 3.6: XML za poglavje 2.3 Quality overall summary Slika 3.7: Opis DTD za dokumenta o substanci in produktu Modul 3 vsebuje podatke o proizvajalcu aktivne substance in produktu. Ime mape za aktivno substanco se mora imenovati substance-1-manufacturer-1 oziroma napisano pravo ime in to ime uporabimo atributu za element <m3-2-s-drug-substance> (Slika 3.8). S tem povemo, dokumenti katere aktivne substance in kateri proizvajalec so v mapi. To je pomembno v primeru, kadar imamo več proizvajalcev. V kolikor imamo več proizvajalcev, za vsakega novega proizvajalca pripravimo svojo mapo in jo poimenujemo substance-1- manufacturer-n. n nam pove, kateri proizvajalec aktivne substance je v mapi. Ime proizvajalca nato povemo v naslovu dokumenta. Poleg različnih proizvajalcev aktivne substance imamo lahko tudi več aktivnih substanc. V tem primeru mapo poimenujemo substance-2-manufacturer-1. Tako vidimo, da imamo lahko veliko aktivnih substanc in veliko proizvajalcev, ki se ločijo po imenu map. Na enak način ustvarimo mapo za produkt. Tudi tukaj mora biti vsak produkt v svoji mapi. V spodnjem primeru lahko vidimo, da z atributi ločimo več aktivnih substanc in več produktov (Slika 3.8) in odgovarjajoči DTD, kjer imamo pri substanci obvezne atribute, pri produktu pa opcijske atribute (Slika 3.9).

47 39 Slika 3.8: Definiranje atributov za aktivno substanco in produkt Slika 3.9: DTD za definicijo mape o substanci in produktu Poglavje o produktu vključuje več neaktivnih substanc (excipients). Vsaka neaktivna substanca je v svoji mapi. Ločimo jih tudi glede na usklajenost s farmakopejo (compendial) in neusklajenost s farmakopejo (non-compendial). Prav tako lahko te ločimo v XML dokumentu z atributom excipient, v katerega zapišemo ime mape. (Slika 3.10). Za vsako neaktivno substanco imamo štiri dokumente, od 3.2.P.4.1 do 3.2.P.4.4, vendar, v kolikor je neaktivna substanca usklajena s farmakopejo (compendial), lahko te podatke združimo v en dokument 3.2.P.4, pri čemer imamo element <m3-2-p-4-control-ofexcipients> in takoj pod njim <leaf> element. Pri neaktivnih substancah, ki niso usklajene s farmakopejo (non-compendial), pa imamo za vsak dokument svoj element, na primer <m3-2-p-4-1-specifications> (Slika 3.10). Element je nato v DTD definiran z <leaf> elementom in sekvenco vseh poglavij (Slika 3.11). Atribut excipient je definiran kot opcijski.

48 40 Slika 3.10: Struktura za neaktivno substanco Slika 3.11: DTD za neaktivno substanco Na podoben način je organizirano poglavje o analitskih postopkih in validacijah o analitskih postopkih. Tukaj imamo lahko en osnovni dokument ali pa več dokumentov. V kolikor imamo več dokumentov, imamo samo en element <m3-2-p-5-2-analyticalprocedures> in več podelementov <leaf> (Slika 3.12). DTD je napisan na podoben način kot za neaktivno substanco, le da so prirejeni podatki o poglavjih. Prav tako uporabimo pri elementu <leaf> znak * in pri ostalih elementih? (Slika 3.13). Slika 3.12: Struktura poglavja o analitskih postopkih, če imamo v njej več dokumentov

49 41 Slika 3.13: DTD za poglavje o analitskih postopkih Če moramo katerega od dokumentov zamenjati (replace), dopolniti (append) ali brisati (delete), moramo ustvariti najprej novo sekvenco. XML dokument se bistveno ne spremeni, le pri atribut operation se spremeni na ustrezno operacijo in se v atribut modified-file napiše, kateri dokument v prejšnji sekvenci smo spremenili (Slika 3.14). DTD se ne spremeni (Slika 3.15). Slika 3.14: Struktura poglavja, če smo dokument spremenili Slika 3.15: DTD za spremenjen dokument Čeprav po specifikaciji ectd uporablja DTD, pa smo želeli preveriti, ali je v našem primeru XML shema boljša. Vsaka shema ima svoje prednosti in slabosti. Prednost strukture DTD (priloga A) je, da za vsak element napišemo, kako si poglavja sledijo in na koncu še atribut (Slika 3.16). Pri XML shemi (priloga B) pa je struktura zgrajena kot sam XML dokument (index.xml) in prednost je, da vidimo strukturo dokumenta index.xml (Slika 3.17). Slika 3.16: Struktura elementa <m2-3-quality-overall-summary> v DTD

50 42 Slika 3.17: Struktura elementa <m2-3-quality-overall-summary> v XML shemi Pri obeh lahko definiramo zunanje atribute; za DTD uporabimo ATTLIST in za XML shemo uporabimo xs:attributegroup. Slabost XML sheme je, da v imenu atributa ne moremo uporabiti podpičja. Nekateri atributi v DTD so napisani kot xlink:href, kar pa ne moremo uporabiti pri XML shemi. Prednost XML sheme je tudi uporaba definicij različnih tipov. Tako na primer določimo tip generaltype, v katerem definiramo izgled vsakega elementa. V tem tipu se sklicujemo na tip leaftype, kjer definiramo <leaf> element. V tej definiciji uporabimo omejitev, s katero natančno določimo, kako moramo imeti v XML dokumentu zapisano vsebino elementa <title>. Imamo lahko več možnosti, kar ločimo s pokončno črto ( ) (Slika 3.18). Slika 3.18: Omejitev za element <title> 4. RAZVOJ APLIKACIJE ZA OBDELAVO XML DOKUMENTA XML dokument smo obdelali na dva načina. Prvi je XML DOM [5] in drugi XML serializacija. Z DOM smo obdelali XML dokument na način, da smo dobili seznam vseh neaktivnih substanc, seznam vseh operacij in seznam vseh aktivnih substanc z odgovarjajočimi dokumenti. Aplikacija omogoča validacijo dokumenta. Pred pritiskom kateregakoli gumba moramo prej preveriti, ali je XML dokument napisan v skladu s shemo. Če tega ne preverimo, se na ekranu ne izpiše nič in nas sistem opozori, da dokument ni odprt in validiran. Ko pritisnemo gumb za seznam vseh neaktivnih substanc, se kazalec postavi na korenski element in se začne pomikati do vseh otrok. Za vsak

51 43 element imamo svoj korak. DOM razdeli XML dokument v drevesno strukturo, tako da se lahko enostavno sprehajamo po strukturi z funkcijo foreach. Pri tem uporabimo XmlNode, ki nam poišče vsa vozlišča, z XmlNodeList pa dostopamo do otroka. Dlje kot gremo po drevesu, več foreach funkcij moramo uporabiti. Namesto foreach zank bi lahko uporabili rekurzivno funkcijo. Če želimo priti do elementa <m3-2-p-drug-product>, moramo najprej dostopati do elementa, ki je takoj za korenskim elementom. Takoj za tem se premaknemo na naslednji element, ki mu sledi. Za vsak korak nižje po strukturi potrebujemo foreach zanko, dokler z if stavkom ne preverimo, ali smo pri našem elementu (Slika 4.1). Slika 4.1: Preverjanje, ali smo pri elementu <m3-2-p-drug-product> Pri tem povemo, da če je element <m3-2-p-drug-product>, potem naj ustvari nov objekt excipient in novo polje neaktivnih substanc (excipients) (Slika 4.2). Slika 4.2: Ustvarjanje novega objekta sexcipient Tukaj lahko izpišemo podatke o produktu. Če imamo podatke v atributu, potem do teh podatkov dostopimo preko funkcije Attributes, kjer moramo v oglatih oklepajih natančno napisati ime atributa v XML dokumentu. V našem primeru smo do atributa product-name dostopali z excipient.imeprodukta = product.attributes["product-name"].value. imeprodukta smo na začetku definirali kot string, produkt je tipa XmlNode, ki smo ga

52 44 definirali v naši foreach zanki. Z Attributes povemo, da nas zanima atribut, pri čemer v oglatih oklepajih natančno napišemo ime atributa in do vsebine atributa dostopamo z Value. Za izpis atributov uporabimo InnerText, ki izpiše vsebino atributa oziroma elementa (Slika 4.3). Za izpis vsebine lahko uporabimo dva načina: InnerText in InnerXml. InnerText izpiše vsebino elementa med začetno in končno značko, InnerXml pa izpiše vse podatke o otrocih med začetno in končno značko. Pri tem izpisu izpiše poleg vsebine tudi vse začetne in končne značke. Slika 4.3: Dostop in izpis vsebine atributov elementa <m3-2-p-drug-product> Do neaktivnih substanc (excipients) gremo po istem postopku, kot do sedaj. Pri tem preverimo, ali smo res pri elementu <m3-2-p-4-control-of-excipients>, in če smo, izpišemo vsako neaktivno substanco. Ker je ta način dostopa do določenega elementa dolgotrajen, lahko uporabimo tudi XPath. Najprej določimo, do katerega elementa želimo dostopati (Slika 4.4). Tudi tukaj dostopamo do otrok z XmlNodeList, ker pa uporabljamo XPath, je dostop lažji. Pri tem povemo, da je korenski element naš XPath in naj šele od tukaj naprej išče vse XmlNode elemente (Slika 4.4). Slika 4.4: Določitev Xpath in dostop do njega Izpis in dostop do neaktivnih substanc je enak prejšnji metodi. Pri vseh nadaljnjih metodah smo uporabili XPath. Za dostop do vseh operacij v XML dokumentu smo uporabili:

53 45 Na prvi pogled morda izgleda nepregledno, vendar XPath omogoča lažji dostop do vseh operacij. Če bi želeli postopoma dostopati do operacij, bi bila metoda zelo dolga. V tem primeru povemo sistemu, da naj izpiše vse vsebine elementov. Za vsako operacijo smo uporabili svojo spremenljivko (i, j, k in l). Sistem poišče element in v njem pregleda, ali obstaja element <leaf>. V kolikor ta element obstaja, pregleda vsebino njegovega atributa in prišteje operacijo v seznam operacij (Slika 4.5). Slika 4.5: Dostop do operacije XML serializacija pa je drugačna. Je postopek, pri katerem razbijemo XML dokument in ga nato z deserializacijo rekonstruiramo nazaj. Pri XML serializaciji ne moremo uporabljati XPath. Najprej moramo odpreti XML dokument s FileStream, kateremu povemo ime XML dokumenta in kako naj sistem odpre dokument. Z XMLSerializer določimo, kaj na serializira, in na koncu kličemo Deserialize (Slika 4.6). Slika 4.6: Dostop do XML dokumenta Do elementov dostopamo s foreach in hodimo postopoma po strukturi navzdol, dokler ne najdemo elementa (Slika 4.7). Da pa lahko sistem pregleduje XML dokument, moramo definirati razred in v njem določiti, kakšna je struktura posameznega elementa. V našem primeru tako določimo, da razred Ectd vsebuje razred modul3 in temu razredu tudi določimo get in set metodi, s katerima nato dostopamo do vsebine elementa. Z XmlRoot povemo, kateri je korenski element. Do elementa dostopa z XmlElement (Slika 4.8). Slika 4.7: Dostop do elementa <m3-2-p-drug-product>

54 46 Slika 4.8: Razred Ectd, v katerem definiramo sestavo elementa <ectd> V našem primeru moramo za celoten XML dokument določiti vse razrede. Določimo, da razred ectd vsebuje element <m3-quality> (Slika 4.8), da razred modul3 vsebuje elemente <m3-2-body-of-data>, <m3-3-literature-references> in <leaf>, in tako nadaljujemo za vse razrede. Za lažjo pregledanost smo v našem primeru za vsak razred uporabili svoj namespace. Do atributov dostopamo z XmlAttribute (Slika 4.9). Slika 4.9: Dostop do atributa Največja razlika med XML DOM in XML serializacijo je v metodi za seznam vseh substanc. Pri XML DOM uporabimo XPath, pri čemer se takoj postavimo na element <m3-2-s-drug-substance>, saj bomo šele od tukaj naprej začeli z našim iskanjem in izpisom substanc. Za nadaljnji sprehod po strukturi se sprehajamo s samo štirimi klici foreach (Slika 4.10). XML serializacija pa ima dolgoročen pristop. Kot smo že povedali, je potrebno točno določeno definirati, kakšna je struktura posameznega elementa. Tako smo v našem primeru definirali celotno strukturo elementa <m3-2-s-drug-substance> z vsemi otroki v razredu Substance. Če želimo dostopati do istega elementa kot pri XML DOM, moramo s foreach zanko najprej začeti pri korenskem elementu <m3-quality>, nato gremo naprej po strukturi do elementa <m3-2-body-of-data> in nato do elementa <m3-2-s-drug-substance>. Do tu smo resnično uporabili samo tri foreach zanke, vendar moramo za izpis vseh dokumentov in operacij v elementu <m3-2-sdrug-substance>, za vsakega otroka tega starša uporabiti novo foreach zanko. Na primer, do izpisa vsebine elementa <title> v elementu <m3-2-s-1-1-nomenclature> moramo najprej preveri, če smo pri pravem elementu <m3-2-s-1-general-information>, ponovno

PMJ, XPath

PMJ, XPath Imenski prostori, poti in kazalci v XML Iztok Savnik 1 Imenski prostori v XML XML dokument lahko uporablja atribute, elemente in definicije, ki se nahajajo v drugih datotekah Modularna zasnova Ne sme priti

Prikaži več

PMJ, XML

PMJ, XML XML I.Savnik, FAMNIT Ozadje 1978 - ANSI (American National Standards Institute) - ustanovljena skupina za pripravo standarda jezika za opis besedil. 1984 - ANSI in ISO (International Standards Organization)

Prikaži več

Diapozitiv 1

Diapozitiv 1 9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V

Prikaži več

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

Orodje za izvoz podatkov

Orodje za izvoz podatkov Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M15245112* JESENSKI IZPITNI ROK Izpitna pola 2 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali kemični svinčnik in računalo.

Prikaži več

Podatkovni model ER

Podatkovni model ER Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

DNEVNIK

DNEVNIK POROČILO PRAKTIČNEGA USPOSABLJANJA Z DELOM PRI DELODAJALCU DIJAKA / DIJAKINJE. ( IME IN PRIIMEK) Izobraževalni program FRIZER.. Letnik:.. oddelek:. PRI DELODAJALCU. (NASLOV DELODAJALCA) Šolsko leto:..

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - UP_Lekcija04_2014.docx 4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Standardi za označevanje dokumentov Razlogi za standardizacijo označevanja dokumentov, označevalni jeziki: MARC, RTF, Teχ, LaTeχ, SGML.

Standardi za označevanje dokumentov Razlogi za standardizacijo označevanja dokumentov, označevalni jeziki: MARC, RTF, Teχ, LaTeχ, SGML. Standardi za označevanje dokumentov Razlogi za standardizacijo označevanja dokumentov, označevalni jeziki: MARC, RTF, Teχ, LaTeχ, SGML. Ponudba e-dokumentov v preteklosti Značilnosti ponudnikov e-dokumentov

Prikaži več

Strojna oprema

Strojna oprema Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / 24. 5. 2019 Uradni list Republike Slovenije PRILOGA 1 PRAVILA ZA OBLIKOVANJE

Prikaži več

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se nanaša na tobačne izdelke na trgu EU in na tobačne izdelke, izdelane v EU, vključno s tistimi

Prikaži več

Microsoft Word - M doc

Microsoft Word - M doc Državni izpitni center *M11145113* INFORMATIKA SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Petek, 10. junij 2011 SPLOŠNA MATURA RIC 2011 2 M111-451-1-3 IZPITNA POLA 1 1. b 2. a 3. Pojem se povezuje

Prikaži več

II-RIS-Primer Seminarske Naloge Redni-LJ

II-RIS-Primer Seminarske Naloge Redni-LJ UNIVERZA V LJUBLJANI FAKULTETA ZA UPRAVO Študijski program: Visokošolski strokovni program Uprava Prva stopnja (bolonjski) Način študija: redni ČIŠČENJE VOZIL V AVTOPRALNICI Seminarska naloga Predmet:

Prikaži več

Navodila za študente

Navodila za študente Moodle UM Verzija 3.5.1 Navodila za študente RCUM, Služba za IS Maribor, 2019 Kazalo 1 Prijava v Moodle UM... 3 2 Odjava iz Moodla UM... 3 3 Seznam učnih enot... 4 4 Navigacijski trak... 4 5 Bloki... 5

Prikaži več

Navodila Trgovina iCenter

Navodila Trgovina iCenter Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno

Prikaži več

Microsoft Word - 021_01_13_Pravilnik_o_zakljucnem delu

Microsoft Word - 021_01_13_Pravilnik_o_zakljucnem delu Na podlagi 64. člena Pravil o organizaciji in delovanju Fakultete za humanistične študije, št. 011-01/13 z dne 27. 6. 2013, je Senat Univerze na Primorskem Fakultete za humanistične študije na svoji 4.

Prikaži več

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površe, pri tem pa zbrati čim več točk. Podobno igro najdemo tudi v knjigi Scratch (Lajovic, 2011), vendar

Prikaži več

Zadeva: Ponudba

Zadeva: Ponudba Navodila za urejanje Spletne strani CTEK.si 1. Dodajanje novega polnilnika Za dodajanje novega polnilnika nikoli ne prepisujte že objavljenih vsebin, ampak sledite tem navodilom. Ta so zagotovilo, da bodo

Prikaži več

Microsoft Word - bibliografske-zbirke-medicina.doc

Microsoft Word - bibliografske-zbirke-medicina.doc Univerza v Ljubljani Filozofska fakulteta Oddelek za bibliotekarstvo, informacijsko znanost in knjigarstvo Sistemi za poizvedovanje Bibliografske zbirke področje medicine Mentor: doc.dr. Jure Dimec Avtorja:

Prikaži več

Pravilnost podatkov, navedenih v vlogi, bo

Pravilnost podatkov, navedenih v vlogi, bo Pravilnost podatkov, navedenih v vlogi, bo Šolsko leto: 2019/2020 preverila komisija za sprejem otrok v vrtec pri upravljavcih zbirk osebnih podatkov, ki Datum oddaje vloge: / jih vodijo v skladu z zakonom.

Prikaži več

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila

Prikaži več

N

N Državni izpitni center *N15164132* 9. razred TEHNIKA IN TEHNOLOGIJA Ponedeljek, 11. maj 2015 NAVODILA ZA VREDNOTENJE NACIONALNO PREVERJANJE ZNANJA 9. razred RIC 2015 2 N151-641-3-2 SPLOŠNA NAVODILA Prosimo,

Prikaži več

Uradni list RS - 12(71)/2005, Mednarodne pogodbe

Uradni list RS - 12(71)/2005, Mednarodne pogodbe PRILOGA 3 Osnovne značilnosti, ki se sporočajo za usklajevanje 1. Zgradba podatkovne zbirke Podatkovno zbirko sestavljajo zapisi, ločeni po znakovnih parih "pomik na začetek vrstice pomik v novo vrstico"

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

Pravilnost podatkov, navedenih v vlogi, bo

Pravilnost podatkov, navedenih v vlogi, bo Pravilnost podatkov, navedenih v vlogi, bo Šolsko leto: / preverila komisija za sprejem otrok v vrtec pri upravljavcih zbirk osebnih podatkov, ki Datum oddaje vloge: / jih vodijo v skladu z zakonom. Šifra

Prikaži več

TNUV Lab

TNUV Lab TNUV - VAJA 5 doc. dr. Marko Meža 2013/14 Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo

Prikaži več

Microsoft Word - CN-BTU4 Quick Guide_SI

Microsoft Word - CN-BTU4 Quick Guide_SI Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost

Prikaži več

ACAD-BAU-Analiza-prostorov

ACAD-BAU-Analiza-prostorov ANALIZA PROSTOROV Ko obdelujemo večje projekte, je analiza prostorov zelo pomembna v vseh fazah projektiranja. Pri idejnem snovanju moramo npr. za določeno površino trgovske namembnosti zagotoviti primerno

Prikaži več

(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc)

(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc) MORSE UČENJE PO KOCHOVI METODI Računalniški program za učenje skupaj z nekaterimi dodatnimi datotekami dobite na spletni strani avtorja: http://www.g4fon.net/. Zanimive strani so tudi: - http://www.qsl.net/n1irz/finley.morse.html

Prikaži več

TNUV Lab5

TNUV Lab5 TNUV - VAJA 5 doc. dr. Marko Meža Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html

Prikaži več

Microsoft Word - pravilnik diploma_1.doc

Microsoft Word - pravilnik diploma_1.doc Na podlagi Statuta Univerze v Ljubljani in 42. člena Pravil o organiziranosti in delovanju Visoke šole za zdravstvo je senat Univerze v Ljubljani Visoke šole za zdravstvo na 38. redni seji dne 16. 10.

Prikaži več

VSEBINSKI NASLOV SEMINARSKE NALOGE

VSEBINSKI NASLOV SEMINARSKE NALOGE Univerza v Ljubljani Naravoslovnoteniška fakulteta Oddelek za tekstilstvo VSEBINSKI NASLOV SEMINARSKE NALOGE TITLE IN ENGLISH Avtorja: Študijska smer: Predmet: Informatika in metodologija diplomskega dela

Prikaži več

Microsoft Word - 13-Selekcijski intervju.docx

Microsoft Word - 13-Selekcijski intervju.docx številka 13, 15. dec.2004, ISSN 1581-6451, urednik:radovan Kragelj Pozdravljeni! Danes nadaljujemo z vprašanji, s katerimi vrednotite konkretne lastnosti in sposobnosti posameznega kandidata. V prejšnjih

Prikaži več

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - avd_vaje_ars1_1.doc ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov

Prikaži več

Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč

Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavčič Matjaž Jerman 8. februar 2006 Kazalo 1 Uvod 2 2

Prikaži več

ARS1

ARS1 Nepredznačena in predznačena cela števila Dvojiški zapis Nepredznačeno Predznačeno 0000 0 0 0001 1 1 0010 2 2 0011 3 3 Pri odštevanju je stanje C obratno (posebnost ARM)! - če ne prekoračimo 0 => C=1 -

Prikaži več

Excel 2016

Excel 2016 PRIDOBIVANJE TEMELJN IH IN POKLICNIH KOMPETENC OD 2019 DO 2022 HIPERPOVEZAVA Gradivo za interno uporabo AVTOR: Belinda Lovrenčič Gradivo ni lektorirano V Maj 2019 Operacijo sofinancira Evropska unija,

Prikaži več

Microsoft Word - M _mod..docx

Microsoft Word - M _mod..docx Državni izpitni center *M17278113* JESENSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Ponedeljek, 28. avgust 2017 SPLOŠNA MATURA Državni izpitni center Vse pravice pridržane. M172-781-1-3 2 IZPITNA POLA 1 1

Prikaži več

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf uporaba for zanke i iz korak > 0 oblika zanke: for i iz : korak : ik NE i ik DA stavek1 stavek2 stavekn stavek1 stavek2 stavekn end i i + korak I&: P-XI/1/17 uporaba for zanke i iz korak < 0 oblika zanke:

Prikaži več

BiokemInfo - Pregled funkcij

BiokemInfo - Pregled funkcij Navodila veljajo tako za Microsoft Excel (v slednjem so pripravljeni tudi prikazani primeri) kot tudi za OpenOffice Calc. Med obema programoma obstajajo malenkostne, a ne bistvene razlike. Celice naslavljamo

Prikaži več

DES

DES Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Model vezja Računalniški model in realno vezje Model logičnega negatorja Načini

Prikaži več

Microsoft PowerPoint - cigre_c2_15.ppt [Compatibility Mode]

Microsoft PowerPoint - cigre_c2_15.ppt [Compatibility Mode] Univerza v Mariboru Fakulteta za elektrotehniko, računalništvo in informatiko Boštjan Polajžer, Drago Dolinar, Jožef Ritonja (FERI) bostjan.polajzer@um.si Andrej Semprimožnik (ELES) KAZALNIKI KAKOVOSTI

Prikaži več

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnovno sporočilo. Izogibajte se daljših besedil in predolgih

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Microsoft Word - Pogodba-SI-TSA-v7.doc

Microsoft Word - Pogodba-SI-TSA-v7.doc SI-TSA Overitelj na Ministrstvu za javno upravo Tržaška cesta 21, 1000 Ljubljana, Slovenija http://www.si-tsa.si si-tsa@gov.si Overitelj na Ministrstvu za javno upravo Tržaška cesta 21 1000 Ljubljana Davčna

Prikaži več

N

N Državni izpitni center *N13164132* REDNI ROK 3. obdobje TEHNIKA IN TEHNOLOGIJA Torek, 14. maj 2013 NAVODILA ZA VREDNOTENJE NAIONALNO PREVERJANJE ZNANJA ob koncu 3. obdobja RI 2013 2 N131-641-3-2 SPLOŠNA

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Dostopnost elektronskih virov za slepe, slabovidne in druge osebe z motnjami branja Kristina Janc ZSSML - 27. Seja TIFLO sekcije 22.3.2012 Možnost izkoriščanja elektronskih virov za slepe, slabovidne in

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Novosti Državnega centra za storitve zaupanja SI-TRUST Mag. Aleš Pelan, Ministrstvo za javno upravo 11.12.2018 ... 2000 2001 2015 2018 Overitelj na MJU Državni center za storitve zaupanja Novosti v letu

Prikaži več

N

N Državni izpitni center *N19141132* 9. razred FIZIKA Ponedeljek, 13. maj 2019 NAVODILA ZA VREDNOTENJE NACIONALNO PREVERJANJE ZNANJA v 9. razredu Državni izpitni center Vse pravice pridržane. 2 N191-411-3-2

Prikaži več

Diapozitiv 1

Diapozitiv 1 Pogojni stavek Pogojni (if) stavek Tip bool Primerjanje Uranič Srečo If stavek Vsi dosedanji programi so se izvajali zaporedoma, ni bilo nobenih vejitev Program razvejimo na osnovi odločitev pogojnega

Prikaži več

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft

Prikaži več

Microsoft Word - IRDO doc

Microsoft Word - IRDO doc ANALIZA MEDIJSKEGA POJAVLJANJA IRDO Inštitut za razvoj družbene odgovornosti 1. 3. 21 28. 2. 211 Press CLIPPING d.o.o., Kraljeviča Marka ulica 5, 2 Maribor, Slovenija, tel.: +386 ()2 / 25-4-1, fax: +386

Prikaži več

Datum in kraj

Datum in kraj Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI

Prikaži več

Microsoft PowerPoint - MSPO_4_DiagramiVpliva.pptx

Microsoft PowerPoint - MSPO_4_DiagramiVpliva.pptx 8. Diagrami vpliva Odločitveno drevo alternative status quo razširitev gradnja povezovanje izidi 28 30 24 42 16 44 30 34, Univerza v Novi Gorici, Poslovno-tehniška fakulteta 1 Slabosti odločitvenih dreves

Prikaži več

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc Navodila za uporabo osebnega portala člana 13.11.08 Pozor: Ta navodila so le v pomoč uporabnikom. V kolikor so navodila v nasprotju s splošnimi pogoji poslovanja kluba, veljajo splošni pogoji poslovanja

Prikaži več

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru 6.1 Uvod 6 Igra Chomp Marko Repše, 30.03.2009 Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru in na končni ali neskončni čokoladi. Igralca si izmenjujeta

Prikaži več

APS1

APS1 Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI Podatkovni tipi Razvil Pascal, Oberon itd. Software is

Prikaži več

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................

Prikaži več

ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva o

ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva o ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva osebnih podatkov posameznikom omogoča uveljavljanje

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

Slajd 1

Slajd 1 REPUBLIKA SLOVENIJA MINISTRSTVO ZA JAVNO UPRAVO 1 EU ENOTNI DIGITALNI PORTAL: PRIHAJA NOVA EU UREDBA Alenka Žužek Nemec, Tina Kuliš DNEVI SLOVENSKE INFORMATIKE 18. april 2018 Ko podjetja ali državljani

Prikaži več

%

% OSNOVNA ŠOLA NARODNEGA HEROJA RAJKA HRASTNIK PODRUŽNIČNA ŠOLA DOL PRI HRASTNIKU PODRUŽNICA LOG AKTIV TJA IN NI KRITERIJ OCENJEVANJA 2018/2019 0-44 % nzd (1) 45-64 % zd (2) 65-79 % db (3) 80-89 % pdb (4)

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne

Prikaži več

Na podlagi 25. člena Pravil Univerze na Primorskem, Fakultete za management in na podlagi Pravilnika o pripravi in zagovoru doktorske disertacije na U

Na podlagi 25. člena Pravil Univerze na Primorskem, Fakultete za management in na podlagi Pravilnika o pripravi in zagovoru doktorske disertacije na U Na podlagi 25. člena Pravil Univerze na Primorskem, Fakultete za management in na podlagi Pravilnika o pripravi in zagovoru doktorske disertacije na Univerzi na Primorskem, ki ga je sprejel Senat Univerze

Prikaži več

Navodilo za izpolnjevanje obrazca M-2 (maj 2015) Kazalo vsebine Podatki o ZAVEZANCU... 3 Rubrika 1 Firma in sedež/osebno ime in prebivališče... 3 Rubr

Navodilo za izpolnjevanje obrazca M-2 (maj 2015) Kazalo vsebine Podatki o ZAVEZANCU... 3 Rubrika 1 Firma in sedež/osebno ime in prebivališče... 3 Rubr Navodilo za izpolnjevanje obrazca M-2 (maj 2015) Kazalo vsebine Podatki o ZAVEZANCU... 3 Rubrika 1 Firma in sedež/osebno ime in prebivališče... 3 Rubrika 2 Registrska številka... 3 Rubrika 3 Matična številka

Prikaži več

DN5(Kor).dvi

DN5(Kor).dvi Koreni Število x, ki reši enačbo x n = a, imenujemo n-ti koren števila a in to označimo z n a. Pri tem je n naravno število, a pa poljubno realno število. x = n a x n = a. ( n a ) n = a. ( n a ) m = n

Prikaži več

SPLOŠNI POGOJI SODELOVANJA IN PRAVILA NAGRADNE IGRE»S PRINGLESOM DO EUR«Uvodne določbe 1. člen S temi splošnimi pogoji so urejena pravila sodelo

SPLOŠNI POGOJI SODELOVANJA IN PRAVILA NAGRADNE IGRE»S PRINGLESOM DO EUR«Uvodne določbe 1. člen S temi splošnimi pogoji so urejena pravila sodelo SPLOŠNI POGOJI SODELOVANJA IN PRAVILA NAGRADNE IGRE»S PRINGLESOM DO 1.000 EUR«Uvodne določbe 1. člen S temi splošnimi pogoji so urejena pravila sodelovanja ter izvedba nagradne igre, ki jo organizira Poslovni

Prikaži več

Diapozitiv 1

Diapozitiv 1 Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika

Prikaži več

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov 4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenovalec, ter iz ulomkove črte. Racionalna števila so števila,

Prikaži več

Prirocnik2.indd

Prirocnik2.indd Priročnik celostne grafi čne podobe podjetja Kemofarmacija d.d. Uvod Pravilna in dosledna uporaba podobe blagovne znamke je zelo pomembna, saj je le-ta najpomembnejši element vizualne komunikacije. Ob

Prikaži več

Slide 1

Slide 1 Opolnomočenje učencev z izboljšanjem bralne pismenosti in dostopa do znanja PREDSTAVITEV ZA STARŠE ŠOLSKO LETO 2011/12 Operacijo delno financira Evropska unija iz Evropskega socialnega sklada ter Ministrstvo

Prikaži več

Microsoft Word - P-2_prijava

Microsoft Word - P-2_prijava PRIJAVA Naročnik Oznaka Ime posla NIJZ Trubarjeva cesta 2 1000 LJUBLJANA 49K040717 Javno naročilo Nakup novih diskovnih kapacitet Povsod, kjer obrazec P-2 uporablja izraz»ponudnik«, gre v postopkih, kjer

Prikaži več

Microsoft PowerPoint - Objekti_gradnja.ppt

Microsoft PowerPoint - Objekti_gradnja.ppt Naredimo razred Katera so stanja/lastnosti Kaj hočemo o objektih te vrste vedeti Kakšne lastnosti imajo Katere so metode Kakšno je znanje objektov Na katere ukaze se odzovejo Način predstavitve lastnosti

Prikaži več

Slide 1

Slide 1 Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi

Prikaži več

DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in pr

DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in pr DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in prilagajanje. Komplet sestavljajo: učbenik in delovni

Prikaži več

Navodila za uporabo Mini snemalnik

Navodila za uporabo Mini snemalnik Navodila za uporabo Mini snemalnik www.spyshop.eu Pred vami so navodila za pravilno uporabo mini snemalnika in opis funkcionalnosti. Lastnosti snemalnika: Naziv Mere Teža Kapaciteta spomina Snemanje Format

Prikaži več

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2 Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 12. junij 2013 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

1. UVODNE DOLOČBE PRAVILA ESEJSKEGA TEKMOVANJA Esejsko tekmovanje za študente Fakultete za državne in evropske študije (v nadaljevanju FDŠ) organizira

1. UVODNE DOLOČBE PRAVILA ESEJSKEGA TEKMOVANJA Esejsko tekmovanje za študente Fakultete za državne in evropske študije (v nadaljevanju FDŠ) organizira 1. UVODNE DOLOČBE PRAVILA ESEJSKEGA TEKMOVANJA Esejsko tekmovanje za študente Fakultete za državne in evropske študije (v nadaljevanju FDŠ) organizira študentski svet FDŠ (v nadaljevanj ŠS) v sodelovanju

Prikaži več

PRVA SLOVENSKA GLASBENA OLIMPIJADA

PRVA SLOVENSKA GLASBENA OLIMPIJADA DRUGA SLOVENSKA GLASBENA OLIMPIJADA PISNI TEST 1. kategorija ime in priimek tekmovalca/tekmovalke Ljubljana, 10. marec 2013 SPLOŠNI PODATKI SPOL M Ž STAROST ŠOLA SEM ČLAN ŠOLSKEGA PEVSKEGA ZBORA DA NE

Prikaži več

Microsoft Word - IPIN slovenska navodila za pridobitev

Microsoft Word - IPIN slovenska navodila za pridobitev IPIN MEDNARODNA IDENTIFIKACIJSKA ŠTEVILKA IGRALCA Spoštovani igralec tenisa! Vsak, ki želi igrati na tekmovanjih pod okriljem mednarodne teniške zveze (ITF), mora pridobiti mednarodno identifikacijsko

Prikaži več

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski

Prikaži več