Blogak.com

Sortu blog berria   Sar zaitez blogera

2007/05/16 13:15:02.500 GMT+2

XML gida

XML, etiketen lenguaia edagarria (eXtensible Markup Lenguage) World Wide Web Consortiumek (W3C) garatutako etiketen metalenguaia edagarri bat da. Ez da lenguaia partikular bat HTML izan daitekeen bezala, behar jakin batzuetara moldatzeko lenguaiak definitzeko era bat baizik, hau da, lenguaiak definitzeko lenguaia bat. Berau osatzen duten elementuek beraien edukiari buruzko informazioa eman dezakete, ez dute zerbat beraien egitura fisiko edo aurkezpenaren buruzkoa eman behar HTMLan bezala.

XMLa ez da Internetera aplikatzeko sortu, plataforma ezberdinen arteko informazioaren elkartrukerako maila baxuko lenguaia (aplikazioaren mailan, ez programazioarenean) gisa baizik. Datu baseetan, textu editoreetan, kalkulu orrietan eta pentsa dezakegun edozein aplikazio motetan erabil daiteke.

EGITURA


XML dokumentu batek bi egitura ditu, bata logikoa eta beste fisikoa. Fisikoki, dokumentua entitate izeneko unitateetan banatuta dago, dokumentu bakoitza "erroa" (root) izeneko entitate batekin hasten delarik. Entitate batek beste bati erreferentzia egin diezaioke, hau dokumentura gehitzen delarik. Logikoki, dokumentua deklarazioz, elementuz, komentarioz, karaktereen erreferentziez eta prozesamentu aginduez osatuta dago, bakoitzak bere marka duelarik. Bi egitura hauek, fisikoak eta logikoa, era egokian etorri behar dute bat.

XML dokumentuak bi taldetan banatzen dira, ongi eratuak eta baliozkoak.

    * Ongi eratuak: DTD batean (Documente Type Definition) finkatatutako elementuen menpe egon gabe erregela sintaktikoei buruzko espezifikazio guztiak betetzen dituzten dokumentuei deritze.

    * Baliozkoak: ongi eratuta egoteaz gain, DTD batek determinatutako egitura eta semantika bat jarraitu behar dute.


Hona hemen adibide errez bat:

    <?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
    <fitxa>
    <Izena> Itxaso </Izena>
    <abizena> Goitia </abizen>
    <helbidea> Aker kalea, 17 </helbidea>
    </fitxa>



Ikus leen lerroa. Lerro honetatik aurrera dagoen kodea XML dela adierazten du. Aukerazkoa den arren, sartzea gomendatzen da. Atributu ugari izan ditzake, batzuk nahitaezkoak eta besteak ez:


    * version: dokumentuan erabilitako XMLaren bertsioa adierazten du. Nahitaez jarri behar da, iada adierazten zuen beste dokumentu baten kanpo dokumentu bat ez bada behintzat.

    * encoding: dokumentua kodifikatu den era. Defektuz UTF-8 da, baina besteren bat jarri daiteke, UTF-16, US-ASCII, ISO-8859-1, ... Ez da nahitaezkoa, kanpo dokumentu bat ez den bitartea.

    * standalone: dokumentua DTD batekin ("no") edo gabe ("yes") datorren adierazten du. Berez ez dago jarri beharrik, DTDa behar denean adierazten bait da geroago.

"Dokumentu mota deklarazioaan" ze dokumentu mota sortzen hari garen definitzen du, behar den bezala prozesatzeko. Hau da, gure XMLko datuak ze dokumentu mota deklaraziok (DTD) balidatu eta definitzen dituen adierazten dugu. Bertan dokumentu mota eta bere DTD non aurkitu adieratzen da, honakoen bidez:

    * Identifikatzaile publiko bat (PUBLIC): DTDra erreferentzia egiten duena.

    * Errekurtsoen identifikatzaile unibertsala (URI): SYSTEM hitza aurretik duela.


Adibideak:

    <!DOCTYPE MESAJE SYSTEM "message.dtd">

    <!DOCTYPE HTML PUBLIC "-/ /W3C/ /DTD HTML 3.2 Final/ /EN">

    <!DOCTYPE LABEL SYSTEM "http://www.blogak.com/programatzen/dtds/label.dtd">


ONGI ERATUTAKO XML DOKUMENTUAK


XML dokumentu bat produkzioareko XML espezifikazioekin bat baldin badator bat ongi eratuta dagoela esaten da, honakoa bete behar duelarik:


Elementuen egitura hierarkikoa

Elementuak mugatzen dituzten etiketei dagokienez, XML dokumentuak egitura hierarkiko zorrotz bat jarraitu behar dute. Etiketa bat beste baten "barruan" egon behar du, eta aldi berean, edukia duten elementu guztiak egoki itxita egon behar dute. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:


    <li>HTMLk <b> honakoa <i> uzten du</b> </i>.

    <li>XMLn <b> egitura<i> es </i> hierarkikoa da</b>.</li>



Etiketa hutsak

HTML eduki gabeko elementuak onartzen ditu. XMLk baita, baina etiketak honako forma eduki behar du <elementu hutsa/>. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:

    <li>Hau HTML da <br> lasaikeria hutsa </li>

    <li>XML <br/> zorrotzagoa da</li>



Erro elementu bakarra

XML dokumentuek erro elementu bakarra onartzen dute, gainontzekoak bere zati direlarik.


Atributuen balioak

Atributuen balio guztiak kakots bakar (') edo bikoitzen (") hartean joan behar dute beti. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:


    <a HREF=http://www.blogak.com/programatzen>

    <a HREF="http://www.blogak.com/programatzen">



Letra motak, espazio zuriak

XMLk erabiltzen den letra mota nabaritzen du, hau da, letra xehe eta larriak karaktere ezberdin bezala tratatzen ditu. Horrela, "FITXA", "Fitxa", "fitxa" eta "fiTXa" elementu ezberdinak lirateke.


"Espazio zuriak" izeneko karaktere multzo bat ere bada, XML prozesagailuek markaketan ezberdin tratatzen dituztenak. Karaketere hauek espazioak, tabulatzaileak, return-ak eta lerro jauziak dira. XML 1.0 espezifikazioak "espazio zuri" hauen erabilera ahalbidetzen du kodea ulergarriago egiteko, nahiz eta prosegailuek ez dituzten kontutan hartuko.


Elementuak izendatzen

XML erabiltzean, beharrezkoa da estrukturei, elementu motei, entitateei, etab... izenak esleitzea. XMLn izenek ezaugarri amankomun batzu dituzte.

Ezin da "xml", "xML", "XML" edo beste edozein aldaeraz hasten den izenik sortu. Letrak eta marrak izenaren edozein zatitan erabil daitezke. Digituak, marratxoak eta puntuak ere erabil daitzeko, baina ezin dute izenaren lehen karakterea izan. Gainontzeko karaktereak, espazio zuriak edo beste hainbat sinbolo, ezin dira erabili.


Markaketa eta datuak

Etiketen "eraikinei", entitateen erreferentziei eta deklarazioei "markak" deritze.  XML prozesagailuak itxaroten dituen dokumentuaren zatiak dira. Marken artean dagoen gainontzeko guztia pertsonentzat ulergarri diren datuak dira.

Erreza da XML dokumentu batean markak antzematea. "<" hasi eta ">" amaitzen diren edota (entitate erreferentzia diren kasuan) "&" hasi eta ";" amaitzen diren kode zatia dira.


ELEMENTUAK


XML elementuak edukia izan dezakete (elementu gehiago, karaktereak, edo biak) edo hutsak izan daitezke. Edukidun adibide bat:

    <izena>Itxaso Arrillaga</izena>
    <mezua mota="deialdia" larritasuna="handia">Etorri hadi segituan hona</mezua>


Beti <etiketa> batekin hasi beharra dago, atributuak eduki ditzazkena (edo ez), eta izen bereko </etiketa> batekin amaitu. HTMLn ez bezala, XML elementu bat itxi beharra dago nahitaez. "<" sinboloa XML etiketa baten hasiera bezala interpretatuko da beti. Ez bada horrela, dokumentua ez da ondo eratuta egongo.

Aldiz, elementu huts bat, edukirik gabekoa, honakoa litzateke:

    <identifikatzailea NAN="12345678"/>
    <lerro-horizontala/>


Ez edukirik ez itxiera etiketik duenez, <etiketa/> forma erabiltzen da, atributuak eduki ditzazkena (edo ez). HTMLn <hr> edo <img src="..."> bezalako etiketa hutsak onartuta dauden arren, ondo eratutako XML dokumentu batean <hr/> edo <img src="..."/> erabili beharko litzateke.


ATRIBUTUAK


Lehenago aipatu den bezala, elementuek atributuak eduki ditzakete, ezaugarriak eta propietateak gehitzeko modu bat direlarik. Adibidez, "liburu" elementu batek "mota" eta "kalitatea" atributuak eduki ditzake, "beldurrezkoa" eta "ederra" balioekin.

    <liburu mota="beldurrezkoa" kalitatea="exkaxa">The Very Old Folks, H.P. Lovecraft</liburu>

Dokumentu Mota Deklarazio baten, elementu mota bakoitzak eduki ditzakeen atributuak zeazten dira, baita bere balioak eta balio mota posibleak ere.

Batzuetan, edukidun elementu bat atributudun elementu huts bezala modelatu daiteke:

    <zakurra><izena>Printzesa</izena><arraza>Bulldog frantziarra</arraza></zakurra>

    <zakurra arraza="Bulldog frantziarra">Printzesa</zakurra>

    <zakurra arraza="Bulldog franziarra" izena="Printzesa"/>



AURREZ DEFINITUTAKO ENTITATEAK


XML 1.0n karaktere bereziak errepresentatzeko bost entitate definitzen dira, XML prozesagailuak markaketa bezala interpretatuko ez dituztenak. Horrela, "<" karakterea erabili dezakegu, XML etiketa bat bezala interpretatua izan gabe.

Entitatea Karakterea
&amp; &
&lt; <
&gt; >
&apos; '
&quot;
"


CDATA ATALAK


Bada XMLn egitura bat XML markaketa bezala interpretatu gabe edozein karaktere erabilita datuak espezifikatzea ahalbidetzen duena. CDATA (Character DATA) izeneko egitura honen arrazoia askotan XML garatzaileek askotan dokumentuak entitate kodeak deszifratzen ibili gabe irakurri behar izaten dutela da. Adibide gisa, ikusi ondokoa (lehen aurrez definitutako entitatea erabiliz eta gero CDATA bloke batekin):

    <parrafoa>Hurrengoa HTML adibide bat da.</html>
    <adibidea>
    &lt;html>
    &lt;head>&lt;title>Rock &amp; Roll&lt;/title>&lt;/head>
    </adibidea>



    <adibidea>
    <![CDATA[
    <html>
    <head><title>Rock & Roll</title></head>
    ] ]>
    </adibidea>


CDATA sekzioaren barnean edozer gauza ipini dezakegu, textu soil gisa interpretatua izango bait da. "] ]>" katea da salbuespen bakarra, CDATA blokearen amaiera adierazten bait du.


KOMENTARIOAK


Batzuetan komentarioak txertatu behar izaten dira XML dokumentuetan, informazioaren prozesagailuak eta dokumentuaren erreprodukzioak kontutan hartuko ez dituztenak. HTML bezala idaztem dira, "<!--" hasi eta "-->" bukatu.


DOCUMENT TYPE DEFINITION (DTD)


Dokumentu mota definizio (DTD) bat sortzea, aplikazio jakin batetarako gure markaketa leguaia propios sortzea bezala da. Adibidez, bisita txartel bat definitzen duen DTD bat eduki dezakegu. DTD hau oinarri gisa harturik, txartelak definitzea ahalbidetuko diguten XML elementu sorta bat edukiko genuke.

DTDak elementu motak, atributuak eta baimendutako entitatea definitzen ditu, eta hauek konbinatzeko mugak adierazi ditzake.

Bere DTDra doitzen diren dokumentuak "baliozkoak" deitzen dira. "Baliotasun" kontzeptuak ez du zerikusirik "ondo eratuta" egotearekin. "Ondo eratutako" dokumentu batek XML espezifikazioaren egitura eta sintaxia errespetatzen du soilik. "Ondo eratutako" dokumentu bat "baliozkoa" izan daiteke DTD jakin baten arauak jarraitzen baditu. Badaude DTD atxikituta ez duten XML dokumenturik, "ez baliozkoak" izango liratekenak.

DTD bat kanpo fitxategi batean egon daiteke, agian dokumentu askok elkartrukatua. XML dokumentuan bertan ere egon daiteke, bere dokumentu mota deklarazioko kide.

Ikus ondorengo adibidea:

    <! DOCTYPE etiketa[
    <!ELEMENT etiketa (izena, kalea, herria, kodea)>
    <!ELEMENT izena (#PCDATA)>
    <!ELEMENT kalea (#PCDATA)>
    <!ELEMENT herria (#PCDATA)>
    <!ELEMENT kodea (#PCDATA)>
    ]>


    <etiketa>
    <izena>Uraitz Zabala</izena>
    <kalea>Zintzarri kalea, 23</kalea>
    <herria>Durango</herria>
    <kodea>12345</kodea>
    </etiketa>



Dokumentu mota deklarazioa lehen lerroan hasten da eta "]>" katearekin amaitzen. DTD deklarazioak "<!ELEMENT" katearekin hasten diren lerroak dira, elementu mota deklarazioak deitzen direlarik. Atributuak, entitateak eta DTD batetarako oharrak ere deklaratu daitezke.

Aurreko adibidean, DTD deklarazio guztiak dokumentuaren barnean daude, baina posible da DTDa beste batean definitzea (osoa edo zati bat). Adb.:


    <?xml version="1.0"?>
    <!DOCTYPE coche SYSTEM "http://www.autoak.com/dtd/autoa.dtd">
    <autoa>
    <modeloa>...</modeloa>
    ...
    </autoa>



ELEMENTU MOTA DEKLARAZIOAK


Elementuak XML marken oinarri dira, eta baliozko bezala kontutan hartzeko, DTD batean deklaratutako dokumentu mota batetara doitu behar du.

Dokumento mota deklarazioak "<!ELEMENT" kate batekin hasi behar dute, deklaratzen den elementuaren identifikatzailea jarraian jarriko delarik. Ondoren edukiaren espezifikazioa bat dute. Adb.:

    <!ELEMENT albiste (izenburua, sarrera, gorputza)>

Adibide honetan, <albiste> elementuak <izenburua>, <sarrera> eta <gorputza> elementuak ditu bere baitan, hauek ere DTDan definituak egongo direlarik eta barnean elementu geiago eduki ahal dituztelarik. Adibideko elementuaren definizioa jarrituz, honakoa izango litzateke baliozko XML dokumentua:

    <albiste>
    <izenburua>...</izenburua>
    <sarrera>...</sarrera>
    <gorputza>...</gorputza>
    </albiste>


    Baina hau ez:

    <albiste>
    <paragrafoa>Ez dakit zer egiten dudan hemen</paragrafoa>
    <izenburua>...</izenburua>
    <sarrera>...</sarrera>
    <gorputza>...</gorputza>
    </albiste>



Edukiaren espezifikaizoa lau motatakoa izan daiteke:

EMPTY

Posible da edukirik ez edukitzea. Atributuetarako erabili ohi da.

    <!ELEMENT lerroa EMPTY>

ANY

Edozein eduki eduki dezake (apur bat erredundantea, badakit). Ez da erabiltzen normalean, gure XML dokumentuak egoki estrukturatu behar bait dira.

    <!ELEMENT denetik_zerbait ANY>

Mixed

Dato motako karaktereak edo eduki nahasiaren espezifikazioan espezifikatutako azpi-elementuen eta karaktereen arteko nahasketa bat izan daiteke.

    <!ELEMENT garrantzia (#PCDATA)>
    <!ELEMENT paragrafoa (#PCDATA|garrantzia)>


Adibidean definitutako lehen elementuak (<garrantzia>), (#PCDATA) motako datuak eduki ditzake. Bigarrenak (<paragrafoa>) bai (#PCDATA) motako datuak bai <enfasis> motaren azpi-elementuak eduki ditzake.

Element

Edukiaren espezifikazioan espezifikatutako azpi-elementuak bakarrik eduki ditzake.

    <!ELEMENT mezua (nork, nori, textua)>


EDUKIAREN EREDUAK


Eredu bat onartutako azpi-elementuak eta hauen ordena ezartzen dituen eredu bat da. Eredu soil batek azpi-elementu bakar bat eduki dezake:

    <!ELEMENT mezu (paragrafo)>    

Honen arabera, <mezu> elementuak <paragrafo> bakar bat eduki dezake.

        <!ELEMENT mezu (izenburu,paragrafo)>

Komak sekuentzia adierazten du. <mezu> elementuak <izenburu> bat eduki behar du eta jarraian <paragrafo> bat.

    <!ELEMENT mezu (paragrafo | irudi)>

Makila bertikala aukera adierazten du. Hau da, <mezu>k elementuak <paragrafo> edo <irudi> bat eduki dezake. Bi aukera soilik daude eta parentesiak erabiliz multzokatu daitezke.

    <!ELEMENT mezu (izenburu, (paragrafo | irudi))>

Azken adibide honetan, <mezu> elementuak <izenburu> bat eduki beharra du eta ondoren <paragrafo> edo <irudi> bat.

Gainera, edukiko elementu bakoitzak frekuentzia adierazle bat eduki dezake:

Frekuentzia adierazleak

? aukerazkoa (0 edo 1 aldiz)
* aukerazkoa eta errepikagarria (0 aldiz edo gehiago)
+ beharrezkoa eta errepikagarria (behin aldiz edo gehiago)


    <!ELEMENT mezu(izenburu?, (paragrafo+, irudi)*)>

Adibide honetan, <mezu> elementuak <izenburu> eduki dezake edo ez (izatekotan bakarra), eta <paragrafo><irudi>, <paragrafo><paragrafo><irudi>... talde ugari eduki ditzake.


ATRIBUTUEN ZERRENDAREN DEKLARAZIOAK


Atributuek dokumentu bateko elementuei informazio gehigarria txertatzea ahalbidetzen dute. Elementuen eta atributuen arteko ezberdintasun nagusia atributu batek ezin duela azpi-atributurik eduki da. Informazio labur, soil eta desegituratua txertatzeko erabiltzen dira.

    <mezu garrantzia="handia">
    <nork>Izaro Sarasola</nork>
    <nori>John Brown</nori>
    <textua hizkuntza="ingelesa">
    Hello John, how are you going?
    ...
    </textua>
    </mezua>

    
Beste ezerdintasun bat, atributu bakoitza behin bakarrik espezifikatu ahal daitekela da, edozein ordenetan. Aurreko adibidean, <mezu> eta <textua> elementuen atributu zerrenda deklaratzeko honakoa egingo genuke:

    <!ELEMENT mezu (nork, nori, textua)>
    <!ATTLIST mezu garrantzia (normala | handia) normala>
    <!ELEMENT textua (#PCDATA)>
    <!ATTLIST textua hizkuntza CDATA #REQUIRED>


Atributuen deklarazioak "<!ATTLIST" katearekin hasten dira, ondoren atributua aplikatzen zaion elementuaren identifikatzailea etorriko delarik. Gero atributuaren izena, mota eta defektuzko balorea dator. Adibideko "garrantzia" atributuak "normala" edo "handia" balioak eduki ditzake, baina defektuzk balioa "normala" izango du ez badugu atributua zehazten. "hizkuntza" atributua "textua"rena da eta CDTA motako datuak eduki ditzazke. #REQUIRED hitzak ez duela defektuzko baliorik esan nahi du, atributu hau zehaztea nahitaezkoa bait da.


ATRIBUTU MOTAK


CDATA eta NMTOKEN atributuak

CDATA (Character DATA) atributuak dira soilenak, ia edozein gauza eduki ditzakete. NMTOKEN (NaMe TOKEN) atributuak antzekoak dira, baina gauzak izendatzeko karaktereak soilik (letrak, zenbakiak, puntuak, gidoiak, azpimarratuak eta bi puntuak) onartzen ditu.

    <!ATTLIST mezu eguna CDATA #REQUIRED>
    <mezu eguna="2007ko maiatzaren 14a"> <!ATTLIST mezu eguna NMTOKEN #REQUIRED>
    <mezu eguna="2007-5-14">



Atributu zenbakituak eta oharrak

Atributu zenbakituak balioa aukera kopuru murriztu batekoa dutenak dira.

    <!ATTLIST mezu garrantzia(normala | handia) normala>

Bada antzeko beste atributu bat, oharra izenekoa (NOTATION). Atributu mota honek egileari bere balioa deklaratutako ohar batetara doitzen dela deklaratzea ahalbidetzen dio.

    <!ATTLIST mezu eguna NOTATION (ISO-DATE | EUROPEAN-DATE) #REQUIRED>

Oharrak deklaratzeko "<!NOTATION" erabiltzen da oharraren kanpo definizio gisa.

    <!NOTATION HTML SYSTEM "http://www.w3.org/Markup">
    <!NOTATION HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">



ID eta IDREF atributuak

ID motak mota jakin batek izen bakar bat edukitzea ahalbidtzen du, IDREF motako beste elementu baten atributuak erreferentziatu ahalko duena. Adibidez, dokumentu bateko esteka sistema soil bat inplementatzeko:

    <!ELEMENT esteka EMPTY>
    <!ATTLIST esteka helburua IDREF #REQUIRED>
    <!ELEMENT atala (paragrafoa)*>
    <!ATTLIST atala erreferentzia ID #IMPLIED>


Kasu honetan, <esteka helburua="3-sekzioa"> etiketak <atala erreferentzia="3-sekzioa"> etiketari egingo lioke erreferentzia, XML prozesagailuak esteka bilakatuko lukelarik.


ENTITATEEN DEKLARAZIOA


XMLk entitaeen bidez sintaktikoki XML erregelen arabera aztertu behar ez diren objetuei (fitxategia, web orriak, irudia,...) egiten die erreferentzia. "<!ENTITY" erabiliz deklaratzen dira DTDan. Entitate bat texto batzuen forma labur gisa erabiltzen den laburdura soil bat izan daiteke. Entitate honetara erreferentzia egitean, analizatzaile sintaktikoak erreferentzia edukiagatik ordezkatzen du. Beste kasu batzuetan erreferentzia  kanpo edo barneko objetu batera da.

Entitateak honakoak izan daitezke:
    
    * Barnekoak edo Kanpokoak
    * Aztertuak edo Ez aztertuak
    * Orokorrak edo Parametroak


Barne entitate orokorrak

Soilenak dira. XML dokumentuaren DTDaren zatian definitutako laburdurak dira. Erreferentzia edukiagatik aldatua izan ondoren, XML dokumentuaren zati izatera pasatzen dira eta honela aztertzen du XML prozesagailuak.

    <!DOCTYPE textua [
    <!ENTITY Mikelen "munduko baburik handienaren">
    ]>

    <textua><izenburua>Egun bat &Mikelen bizitzan</izenburua></textua>



Aztertutako kanpo entitate orokorrak

Kanpo entitateek beraien edukia sistemako beste edozein tokitatik ateratzen dute (disko gogorretik, web orri batetik, datu base batetik...). SYSTEM hitzaren bitartez egiten da erreferentzia edukiari, URI (Universal Resource Identifier) bat ondoren ipiniz.

    <!ENTITY intro SYSTEM "http://www.nerezerbitzaria.com/sarrera.xml">


Entitate ez aztertuak

Entitatearen edukia MPG artxibo bat, GIF irudi bat edo EXE exekutagarri bat bada, XML prozesagailuak ez luke XML textua balitz bezala interpretatzen saiatu behar. Entitate mota hauek beti orokorrak eta kanpokoak dira.

    <!ENTITY logo SYSTEM "http://www.nerezerbitzaria.com/logo.xml">


Barneko eta kanpoko parametro entitateak

Parametro entitate gisa DTDan bakarrik (ez XML dokumentuan) erabil daitezkeen entitateei deritze. Asko errepikatzen diren DTDko elementu batzu taldekatzeko erabil daitezke. "%" sinboloa erabiltzen da, entitate orokorretako "&"ren ordez.

    <!DOCTYPE textua [
    <!ENTITY % elementua-Mikelen "<!ELEMENT ALF (#PCDATA)>">
    ...
    %elementua-Mikelen;
    ]>


Kanpokoa ere izan daiteke:

    <!DOCTYPE textua [
    <!ENTITY % elementua-Mikelen;SYSTEM "Mikelen.ent">
    ...
    %elementua-Mikelen;
    ]>



DTD ADIBIDEAK


Ondoren, posta helbideen datu base baten markaketa lenguaia definitzen duen DTD baten adibidea ikusiko dugu.

ZERRENDA.DTD fitxategia horrelako zerbait izango litzateke:

    <?xml encoding="UTF-8"?>
    <!ELEMENT zerrenda (pertsona)+>
    <!ELEMENT pertsona (izena, email*, erlazioa?)>
    <!ATTLIST pertsona id ID #REQUIRED>
    <!ATTLIST pertsona sexua (gizonezkoa | emakumezkoa) #IMPLIED>
    <!ELEMENT izena (#PCDATA)>
    <!ELEMENT email (#PCDATA)>
    <!ELEMENT erlazioa EMPTY>
    <!ATTLIST erlazioa lagunak IDREFS #IMPLIED
    etsaiak IDREFS #IMPLID>


DTD honetan oinarrituta, gure zerrenda XML bidez honela idatziko genuke:

    <?xml version="1.0"?>
    <!DOCTYPE listin SYSTEM "zerrenda.dtd">
    <zerrenda>

    <pertsona sexua="emakumezkoa" id="Eki">
    <nombre>Ekiñe Garmendia</nombre>
    <email>mutturgorri@euskalerria.org</email>
    <erlazioa lagunak="Iñaki">
    </pertsona>

    <pertsona sexua="gizonezkoa" id="Iñaki">
    <nombre>Iñaki Leunda</nombre>
    <email>iLeunda@euskalerria.org</email>
    </pertsona>

    </zerrenda>


Nork: galustiza.2007/05/16 13:15:02.500 GMT+2
Etiketak: xml euskara gidaliburu programazio eb lenguaia informatika html gida | Permalink | Erantzunak (0) | Errenferentziak: (0)

2007/02/08 15:40:54.605 GMT+1

JavaScript oinarrizko gida

Egilea: Gorka Alustiza

SARRERA


JavaScript web garapenaren munduan asko erabiltzen den programazio lenguaia bat da, bai lan txikiak egiteko bai aplikazio komplexuak kudeatzeko. JavaScript lenguaia, sistema operatzailean exekutatzen diren gainerako lenguaiak ez bezala, web orriak ikusteko erabiltzen dugun nabigatzaileak exekutatzen du. Adibidez, HTML kodean txertaturik, erabiltzaileak eragindako ebentuen edo formularioen kudeaketa eraman dezakegu, lehio ezberdinetako web oirrien hartean informazioa elkarbanatu, grafikoak edo textua manipulatu, Flash, Shockwave, etab... plug-inekin komunikatu...

Javascriptek beste goi mailako hizkuntzekin ezaugarri asko ditu amankomunean. Bai formatuan bai sintaxian C, Java edo PHPren antza handia du.

Bere aurkari nagusia Visual Basic Script da. Microsoftek garatuta eta Basic lenguaiean oinarrituta, Internet Explorer nabigatzailearekin soilik erabil daiteke. Horregatik, JavaScript da dudarik gabe gure horri dinamikoentzat.

ALDAGAIAK


JavaScripteko aldagaiek letrak, zenbakiak eta balore logikoak (true/false) gorde ditzazkete. Horrela definitzen dira:

    var aldagai1 = 123;
    var aldagai2 = 12.3:
    var aldagai3 = "kaixo mundua";
    var aldagai4 = true;


OBJETUAK


Objetuak bere barnean propietate eta metodo sorta bat dituzten egiturak dira. Propietatea aldagaiak dira (objetuak izan daitezkeenak baita) eta metodoak funtziak. Javascriptek aurrez definitutako objetu asko ditu, erabiltzaileak beste hainbeste defini ditzazkelarik. Objetu baten propietatera akzeditzeko "Objetua.Propietatea" sintaxia erabili behar da. Adibidez, "auto" objetua badugu, "kolore" eta "matrikula" propietateak asignatu ditzakegu:

    auto.kolore = "Gorria";
    auto.matrikula = 2202;


Metodo bat objetuari atxikituta doan funtzio bat da soilik, eta funtzio bat lan jakin bat egiten duen expresio multzo bat, deituak izaten direnak. Funtzio baten egitura berriz honakoa da:

    function nereFuntzioa(string)
    {
        document.write("kaixo mundua");
    }


Objetu bat sortzeko bi pausu eman beharra daude, lehenik funtzio baten bidez objetuaren tipoa definitu eta gero objetu horren instantzia bat sortu "new" hitz erreserbatuarekin. Adibidez, "auto" tipoko objetu bat sortu nahi bada, lehenik funtzio generiko bat definitu beharko da:

    function auto(kolore,matrikula,marka)
    {
        this.kolore = kolore;
        this.matrikula = matrikula;
        this.marka = marka;
    }


Ondoren, "auto1" objetua sortu beharko da:

    auto1 = new auto("gorria",2202,"opel");

INSTRUKZIOAK


JavaScriptek, beste lenguaiek bezala, sintaxi ezberdineko hainbat hitz gako ditu erregistraturik. Adb.:

Aldagaien deklarazioa:
    
    var aldagaiIzena = izena;

Komentarioak:

    //Kontuz hemen
    /*Hau asko
    kosta zitzaidan*/


Funtzioak:

    function izena(parametro1, parametro2,...)
    {
        JavaScript kodea
    }


Baldintzazko instrukzioak:

    if(baldintza)
    {
        Baldintza betetzen bada exekutatu beharreko instrukzioak
    }
    else
    {
        Baldintza betetzen ez bada exekutatu beharreko instrukzioak
    }


    switc(aldagaia)
    {
        case 1: instrukzioak
            break;
        case 2: instrukzioak
            break;
        default: instrukzioak
    }


Bukleak:

    for(hasierako balioa; baldintza; aktualizazioa)
    {
        Bukle bakoitzean exekutatu beharrekoa
    }

    while(baldintza)
    {
        Bukle bakoitzean exekutatu beharrekoa
    }


JAVASCRIPT HTML KODEAN TXERTATZEN


Bi modu daude HTML dokumentu batean JavaScript script bat txertatzeko: SCRIPT markaren bidez, zeinak funtzioak definitzea ahalbidetzen du; edota gertaeren (events) kudeaketa ahalbidetzen duten HTML marka batzuen atributuen bidez. Lehen metodoarekin, scripta SCRIPT marken artean idazten da, gehienetan HTML komentario bat bailitzan (<!-- ... -->). Horrela SCRIPT marka interpretatzen ez duten nabigatzaileetan idatzi dugun JavaScript kodea ikustea eragozten dugu. Ikus ondorengo adibidea:

    <HTML>
    <HEAD>
    <SCRIPT Language="JavaScript">
    <!--
    function mezua()
    {
        document.write("Kaixo mundua!");
    }
    -->
    </SCRIPT>

    </HEAD>    
    <BODY onLoad="mezua()">
          JavaScript proba
    </BODY>
    </HTML>


HTML dokumentuaren buruan "mezua()" izeneko JavaScript funtzio bat definitu da SCRIPT etiketen artean. Funtzio honi orria kargatzean deituko zaio, eta horretarako BODY etiketan "onLoad" gertaera ipini dugu.

GERTAERAK KUDEATZEN


JavaScripten ezaugarri erakargarriena detektatutako gertaerak modu lokalean kudeatzeko aukera da. Gertaerak erabintzailearen ekintzen emaitza dira, adibidez, botoi bat sakatzea edo formulario bateko eremu bat aukeratzea. Gertaera hauen kudeaketa marka jakin batzuetan adierazten da eta bakoitzari atxikituta doakion ekintza espezifikatzen du. Honakoa du sintaxia:

    <marka gertaera="JavaScript kodea">

Adibide garbiago bat:

    <INPUT TYPE="button" onClick="funtzioa();">

Botoi bat adierazten duen marka honetan "onClick" gertaera gertatzen denean (hau da, erabiltzaileak botoia zapaltzen duenean"), berari atxikituta doan funtzioari deituko dio. Kakotsen ("") hartean JavaScript kodea zuzenean idaztea dagoen arren, gomendagarrien aurreragotik definitutako funtzioei deitzea da.

Hona hemen gertaeren eta berau atxikituta duten HTML marken zerrenda bat:

Gertaera Erabiltzailearen ekintza
HTML marka
onBlur Edizio eremu bat uztean
INPUT
onClick Formulario elementu batean klik egitean
FORM, A
onChange Eremu bateko balio aldatzean
INPUT, SELECT
onFocus Edizio eremu bat aktibatzean
INPUT
onLoad HTML dokumentua kargatzean
BODY
onMouseOver Xaguaren kurtsorea gainetik pasatzean
A, IMG
onSelect Edizio eremua aukeratzean
INPUT
onSubmit Formularioa bidaltzean
FORM
onReset Formularioa garbitzean
FORM
onUnload HTML dokumentua uztean
BODY
onMouseOut Xaguaren kurtsorea gainetik kentzean
A, IMG






Nork: galustiza.2007/02/08 15:40:54.605 GMT+1
Etiketak: web gidaliburu euskara javascript programazio lenguaia informatika gida | Permalink | Erantzunak (1) | Errenferentziak: (0)

2007/01/05 11:51:14.074 GMT+1

Apache + PHP + MySQL instalatzeko gida

Egilea: Gorka Alustiza


Web orri bat garatzen hari garenean, erabiltzaile gehienek era lokalean sortzen dituzte orri hauek, gerora zerbitzari batera (dohakoa edota ordaindu beharrekoa) igo baino lehen. Honek gure ordenagailuan zerbitzari bat eraiki behar dugula esan nahi du, gure orriek zerbitzariak exekutatu beharreko scriptak (PHP kodea, adibidez) funtziona dezaten. Artikulu honetan web horri bat garatzeko hiru oinarrizko elementuak, Apache, PHP eta MySQL, nola instalatu azaltzen saiatuko gara. Zehazki, Apache 2.0.X, PHP 5.0.3 eta MySQL 4.0.X bertsioak instalatuko ditugu.

PROGRAMAK JEITSI

Behar diren hiru programak hainbat lekutan aurki ditzazkegu sarean, baite bere orri ofizialetan ere. Hona hemen hiru link orri hauetara:

   
    Apache

    MySQL

    PHP


APACHE INSTALATU

Egin behar dugun gauza bakarra jeitxi dugun artxiboa exekutatzea da, ongietorri lehio bat agertuko delarik. Sakatu Next> honako orria agertu arte:



Ondorengo orri honetan datu batzu idatzi beharko dira. "Network Domain" eta "Server Name"en gure ordenagailu lokalaren IP zenbakia (127.0.0.1) edo "localhost", "Administrator's Email Address" nahi dugun email helbidea (nahiz eta ez existitu) eta "Run when started manually, only for me" aukeratu.

Hau eta gero azken orrira iritsiko gara. Sakatu Install eta kitto.

PHP 5 INSTALATU

ARTXIBOAK KOPIATU

Egin beharreko lehen lana zerbitzariaren artxiboak gordetzeko karpeta bat sortzea da, adibidez "C:\Zerbitzaria\", ondoren bere barruan PHP izeneko beste bat sortuko dugularik "C:\Zerbitzaria\PHP". Bere orri ofizialetik jeitsi dugun ZIP artxiboaren edukina karpeta honetara aterako dugu. Azkenik, PHP karpeta honetan aurkituko liratezkeen DLL artxibo guztiak kopiatu eta Windows karpetako System (Windows 9x bada) edo System32 (NT,2000,XP,2003) direktoriora kopiatu behar dira (EXT karpetako DLLak ez daude kopiatu beharrik).

PHP.INI ARTXIBOA KONFIGURATU

Hurrengo pausoa php.ini artxiboa konfiguratzea izango litzateke. "C:\Zerbitzaria\PHP\php.ini-dist" artxiboari izena aldatzen diogu, "php.ini" berrizendatuz eta "Notepad" herramintarekin irekitzen dugu.
Nahi izanez gero, "register_globals = Off" lerro aurkitu eta "register_globals = On"-en truke aldatu dezakegu. Direktiba hau aktibatuz aldagaiak globalak direla suposatuko da eta edozein moduz iritsi daitezkeela (POST, GET, COOKIE, SERVER, etab...), baina segurtasun arazoak direla medio, ez da oso gomendagarria.
Ondoren PHPri luzapenak non gorde adieraziko diogu. Honetarako, bilatu "php.ini" artxiboan "extension_dir" ipintzen duen lerroa eta "php_xxx.dll" artxiboak dauden karpeta ipintzen diogu (defektuz PHP barruko "ext" karpeta dena). Kontuz "\" barra jartzearekin, "/" jarri behar bait da. Honela geratu behar luke:

  ; Directory in which the loadable extensions (modules) reside.
  extension_dir = "C:/Zerbitzaria/PHP/ext/"


Nahi ditugun luzapenak aktibatu ditzazkegu, horretarako "Windows Extensions" esaldia bilatuz textuan. Gure kasuan "php_mysql.dll" aktibatzea komeni zaigu MySQLren inguruko funtzioak erabili ahal izateko. Horretarako ";extension=php_mysql.dll" lerroa aurkitu eta hasierako ";" kendu beharko zaio.

HTTP bidez artxiboak igo nahi baditugu, berauek tenporalki non gorde nahi diren ere adierazi behar zaio. Aurkitu "upload_tmp_dir" esaldia eta ipini nahi dugun direktorioa. "C:\Zerbitzaria\PHP"-n "uploads" izeneko karpeta bat sor dezakegu helburu honetarako, horrela geratuko litzatekelarik:

  ; Temporary directory for HTTP uploaded files (will use system default if not
  ; specified).
  upload_tmp_dir = "C:/Zerbitzaria/PHP/uploads/"


Sesioekin lan egiteko artxibo tenporalak gordetzeko direktorio bat ere jarri behar da. Lehen egin dugun bezala "session.save_path" bilatu eta nahi dugun direktorioa ipintzen dugu, iada existitzen dena edo guk sortua:

  session.save_path = "C:/Zerbitzaria/PHP/sessions/"

Amaitzeko "php.ini" artxiboa gorde aldaketa guztiekin eta "C:\Windows" edo "C:\WinNT"-ra kopiatu gure Windows bertsioaren arabera. Orain Apache konfiguratu beharko da PHP daukagula jakin dezan.

APACHEREN HTTPD.CONF ARTXIBOA KONFIGURATU

"Apache" direktorioko "Conf" karpetan dagoen "httpd.conf" artxiboa ireki behar dan lehenik "Wordpad"ekin eta "Dynamic Shared Object (DSO) Support" bilatu. Hemen Apacherentzat dagoen PHP modulua kargatuko dugu, "php5apache2.dll" helbidea emanez, honela geratu behar duelarik:

   # Example:
  # LoadModule foo_module modules/mod_foo.so
  #  
  LoadModule php5_module C:/Zerbitzaria/PHP/php5apache2.dll

Orriak gordetzeko berezko direktorioa "C:\Archivos de programa\Apache Group\Apache\htdocs\" da, baina nahi izanez gero alda dezakegu. Honetarako bilatu "DocumentRoot" esaldia hau bilatu arte:

  #
  # DocumentRoot: The directory out of which you will serve your
  # documents. By default, all requests are taken from this directory, but
  # symbolic links and aliases may be used to point to other locations.
  #
    DocumentRoot "C:/Archivos de programa/Apache Group/Apache/htdocs"


Aldatu azken lerroa gure orriak gorde nahi ditugun direktoriora, adibidez:

"C:/Zerbitzaria/WEB".

Ondoren bilatu "DirectoryIndex" textua eta honakoa agertuko da:

  #
  # DirectoryIndex: sets the file that Apache will serve if a directory
  # is requested.
  #
  # The index.html.var file (a type-map) is used to deliver content-
  # negotiated documents. The MultiViews Option can be used for the
  # same purpose, but it is much slower.
  #
    DirectoryIndex index.html index.html.var


Hemen index (sarrera) predeterminatuak definitzen dira. Nahi izanez gero gehitu index gehiago:

    DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml index.html.var

Honen azpian beste bi lerro txertatu beharko dira, Apache interpretatu behar dituen luzapenak adierazteko. Denera, horrela geratu beharko luke:

  #
  # DirectoryIndex: sets the file that Apache will serve if a directory
  # is requested.
  #
  # The index.html.var file (a type-map) is used to deliver content-
  # negotiated documents. The MultiViews Option can be used for the
  # same purpose, but it is much slower.
  #
  DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml index.html.var
  AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
  AddType application/x-httpd-php-source .phps


APACHE ZERBITZARIA PROBATZEN


Egin beharreko lehen gauza Apache hastea da oraindik ez badago. Honetarako, "Inicio->Todos los programas", Apache zerbitzaria aukeratu, "Control Apache Server" eta "Monitor Apache Server". Hemen zerbitzaria hasi edo itzali dezakegu. Ez bazaigu automatikoki hasi, "Start"i ematen diogu.

Probatzeko "info.php" orri bat sor dezakegu "C:/Zerbitzaria/WEB" direktorioan, bere edukia honako textua izango delarik:

  <?
  phpinfo();
  ?>


Gure nabigatzailean "http://127.0.0.1/info.php" edo "http://localhost/info.php" jarriz gero, PHPren informazioa duen orri bat agertu behar du. Ez bada agertzen, zerbait gaizki egin dugu.



Ikus daitekeen bezela, gure zerbitzariko orrietara akzeditzeko ("C:/Zerbitzaria/WEB" direktorioan egongo direnak) "http://localhost/izena" jarri behar da, "www" gabe. Gure direktorioan azpi-karpeta bat egongez gero, honako jarri beharko litzateke: "http://localhost/karpeta/izena". Dena ondo egin ezgero, gertu dugu gure zerbitzaria web orriak eraikitzeko, Internetera konektatuta egon beharrik gabe. 

MYSQL INSTALATU

Jeitsi dugun ZIP artxiboa deskonprimitu beharko dugu lehenik, "setup" exekutatuz sortuta edukiko dugun "C:/Zerbitzaria/MySQL" karpetan instalatuko dugularik. Ondoren "C:/Zerbitzaria/MySQL/bin"-n egongo den "winmysqladmin.exe" exekutatuko dugu eta lehen aldia denez erabiltzaile izena eta pasahitz bat eskatuko digu. Sartu gura dena (defektuz, erabiltzailea "root" eta pasahitzik ez). Hau egin ondoren semaforo baten ikonoa agertuko zaigu pantailaren behe-eskuinaldean, gauza ondo joan bada berdea izan behar lukeena.


Nork: galustiza.2007/01/05 11:51:14.074 GMT+1
Etiketak: informatika gida mysql apache zerbitzari php instalatu | Permalink | Erantzunak (1) | Errenferentziak: (0)

2006/12/18 20:32:07.646 GMT+1

SQL lenguaia

Egilea: Gorka Alustiza

DATU BASEAK


Datu base bat textu formatuan informazioaren biltegiratze masiboa  helburu duen soporte digital bat da. Datu base bakoitza, informazioa era ordenatuan erakusteko, tabletan banatuta dago. Tabla bakoitza zutabetan banatuta dago, informazioaren kanpo ezberdinak izango litzatezkeenak, eta azkenik, datu erregistro bakoitzeko lerro bat egongo litzateke. Hobeto ulertzeko, tabla bat "lagunak" izango litzateke, zutabeak "izena","abizena","adina" eta lerroak ["Iker","Murua","22"], ["Ainara","Zabala","24"],...

Datu baseak sortu, bertara akzeditu eta aldatzeko programa kudeatzaileak erabiltzen dira. Hona hemen adibide batzu:

MySQL: GPL baimena duen datu base bat da (askea beraz), denetan erabiliena. Berez kode bidez sortu eta kudeatu behar den arren, erabiltzaileek phpMyAdmin, MySQL Control Center edo beste programaren bat erabil dezakete informazioa kudeatzeko.

Access: Microsoftek garatua, access programarekin sortu behar da, zeinak gorago azaldu den egitardun .mdb artxibo bat sortuko du. Ingurune grafikoa excelen oso antzekoa da.

Oracle: Oracle Corporationek sortua, dagoen sistemarik osoenetarikotaz jotzen da, bere estabilitate, transakzio soporte eta plataformanitza delako. Bere alde negatiboa oso garestia dela da.

SQL LENGUAIA


SQL edo structured consulting language (kontsulta lenguaia estrukturatua) datu base erlazionaletara sartzeko lenguaia deklaratibo bat da, berauekin hainbat operazio egitea ahalbidetzen duena. Aljebra eta kalkulu erlazionalaren ezaugarriak batzen ditu datu base batetik interesezko datuak atera ahal izateko modu errazean. Kontsulta soiletik haratago, datu baseak eta bistak definitzeko eta datuen manipulatzeko lenguaia ere bada.

DATUAK ATERATZEKO


Datu base erlazionaletan ematen den operazio ohikona datuak ateratzekoa da. Datuak lortzeko komandoetara mugatua dagoenean, SQLk lenguaia deklaratibo gisa jokatzen du.

SELECT

Datu baseko tabla batetik edo gehiagotik erregistro lerro bat edo gehiago ateratzeko erabiltzen da. Komandorik erabiliena, erabiltzaileak atera nahi duen informazioaren ezaugarriak aukera ditzazke. Hauek dira SELECT komandoari atxikituta doazen hitz gako nagusienak:

FROM: datu baseko zein tabletatik atera nahi den informazioa adierazteko balio du.
WHERE: atera nahi diren erregistroen ezaugarriak identifikatzen ditu.
JOIN: baliokide konbinazio bat sortzen du. Hauek bi tabletako erregistroak konbinatzen dituzte, komunean duten zutabe baten balioaren arabera.
GROUP BY: adierazitako zutabeetan balio bera duten erregistroak konbinatzen ditu erregistro bakar batean.
HAVING: WHERE-n antzekoa, GROUP BY instrukzioarekin konbinatutako erregistroen ezaugarriak definitzen ditu.
ORDER BY: lortutako erregistroak ordenatzen ditu adierazitako zutabearen balioaren arabera.

Ikus ondorengo adibidea:

    SELECT * FROM lagunak
    WHERE adina>20
    ORDER BY abizena

Adibide honetan "lagunak" tablatik ateratzen dira erregistro lerroak. "*" sinboloarekin erregistroen zutabe guztiak atera nahi direla adierazten da (zutabe jakin batzu soilik nahi izango bagenituzke, nahikoa litzateke hauek jartzea sinboloaren ordez: "izena","abizena",...). "Adina" izeneko zutabea (zenbakizkoa izango dena) 20 baino handiagoa dutenak aterako dira soilik, baldintza hau betetzen ez duten erregistroak baztertuko direlarik. Lortutako erregistroak "abizena" zutabearen arabera ordenatuko dira alfabetikoki. Ondorengo adibidea konplexuagoa da:

    SELECT lagunak.izena,lagunak.bizilekua FROM lagunak
    JOIN herriak
    ON lagunak.bizilekua=herriak.izena

Baliokide konbinazio bat egiten du. "Lagunak" tablatik, "herriak" tablan agertzen diren herrietan bizi diren lagunen izena eta bizilekua ateratzen du. Lagunen bat "herriak" tablan agertzen ez den herri batean bizi bada, ez da emaitzan agertuko, eta lagunik bizi ez den herririk ere ez. Hau izango litzateke emaiza:

Nerea Alegia
Imanol Beasain
Itxaso Asteasu

DATUAK MANEIATZEKO


Datuak Manipulatzeko Lenguaiaren (DML, "Data Manipulation Language") elementuak erabiltzen dira, datuak sartu, eguneratu edo ezabatzeko.

INSERT

Existitzen den tabla bati erregistro bat edo gehiago gehitzeko erabiltzen da. Adb.:

    INSERT INTO lagunak(izena,abizena,adina) VALUES ('garikoitz",'ayestaran',25)

UPDATE

Existitzen den lerro baten balioak aldatzeko. Adb.:

    UPDATE lagunak SET abizena='iraola' where izena='maitane'

DELETE

Lerroren bat ezabatzeko. Adb.:

    DELETE FROM lagunak WHERE adina<20


TRANSAKZIO KONTROLA


Datu basean operazio bat egiten den bakoitzean, hau ez da benetazko tablan egiten, bere kopia batean baizik. Aldaketa hauek datu basean modu iraunkorrean gordetzeko, ondorengo komandoak erabiltzen dira. Zorrotzki jokatuz, BEGIN WORK komandoarekin ireki behar dira.

COMMIT

Egindako aldaketa guztiak "igotzen" ditu, iraunkorrak eginez.

ROLLBACK

Azken COMMITetik egindako aldaketa guztiak desegiten ditu, gordetako azken bertsiora itzuliz.


DATUEN DEFINIZIOA


Bigarren hitz gako taldea Datuen Definizio Lenguaia (DDL, "Data Definition Language") da. Honen bidez erabiltzaileak tabla berriak definitu ditzazke. Hauek dira bere komando nagusiak:

CREATE

Objetu bat sortzen du (tabla bat adibidez) datu basean.

DROP

Objetu bat ezabatzen du datu basetik.

TRUNCATE

Tablako datu guztiak ezabatzen ditu.

ALTER

Objetuak aldatzea ahalbidetzen du, adibidez, tabla bati zutabe bat gehituz.

Nork: galustiza.2006/12/18 20:32:07.646 GMT+1
Etiketak: datu programazio lenguaia informatika base sql | Permalink | Erantzunak (0) | Errenferentziak: (0)

2006/12/13 18:46:29.620 GMT+1

HTML etiketen zerrenda

Egilea: Gorka Alustiza

NAGUSIAK


<HTML>...</HTML> HTML fitxaren hasiera eta amaiera
<HEAD>...</HEAD> HTML dokumentu baten burua
<BODY>...</BODY> HTML dokumentu baten gorputza
<TITLE>...</TITLE> Browserrak ikusaraziko duen titulua

TEXTUAREN ESTILOA


<B>...</B> Lodia
<I>...</I> Etzana
<U>...</U>
Azpimarratua
<S>...</S>
Marratua
<BIG>...</BIG>
Karaktereen tamaina unitate batean gehitua
<FONT color="#XXXXXX">...</FONT>
Textuaren kolorea
<FONT  size="X">...</FONT>
Textuaren tamaina
<FONT face="X">...</FONT>
Textuaren letra mota
<PRE>...</PRE>
Textu preformateatua
<SMALL>...</SMALL>
Karaktereen tamaina unitate batean gutxitua
<SUB>...</SUB>
Textua azpi-indizean
<SUP>...</SUP>
Textua goi-indizean

PARRAFOA ETA LERROKATZEAK


<!--...-> Komentarioak
<BR>
Lerro jauzia
<CENTER>...</CENTER>
Etiketen arteko elementua zentratu
<DIV align=center>...</DIV>
Etiketen arteko elementua zentratu
<DIV align=left>...</DIV>
Etiketen arteko elementua ezkerrean jarri
<DIV align=right>...</DIV>
Etiketen arteko elementua eskuinean jarri
<P>
Parrafo berria

ZERRENDAK


<UL><LI>...</LI></UL> Zenbakitu gabeko zerrenda
<OL><LI>...</LI></OL>
Zenbakitutako zerrenda
<DL><DT>...</DT></DL>
Definizio zerrenda (indentatu gabea)
<DL><DD>...</DD></DL>
Definizio zerrenda (indentatua)

ESTEKAK


<A href="http://...">...</A>
Web orri batera esteka
<A href="mailto:...">...</A> Email helbida batera esteka
<A href="orria.htm">...</A> "orria.htm" direktorio bereko orri batera esteka
<A href="sekzio">...</A> Sekzio batera esteka
<A href="#sekzio.">...</A> Orri bereko sekzio batera esteka
<A href="orria#sekzio.">...</A> "orria.htm" orriko sekzio batera esteka

IRUDIAK


<IMG src="irudi.gif">
"Gif" irudi baten txertatzea
<IMG ... width="x" height="y">
Irudiaren zabalera eta altueraren definizioa pixeletan
<IMG ... alt="Irudi bat">
Irudia agertzen ez denerako textu alternatiboa

TAULAK


<TABLE>...</TABLE> Taula baten definizioa
<TABLE border=x>...</TABLE>
Taularen ertzaren zabalera
<TABLE cellpaddin=x>...</TABLE>
Textuaren eta ertzaren arteko distantzia
<TABLE cellspacing=x>...</TABLE>
Gelaxken harteko marraren zabalera
<TR>...</TR>
Taulako lerroa
<TD>...</TD>
Taulako gelaxka
<TD bgcolor="#XXXXXX">
Gelaxka baten kolorea
<TD colspan=x>
Horizontalki fusionatu beharreko gelaxka kopurua
<TD rowspan=x>
Bertikalki fusionatu beharreko gelaxka kopurua

MARKOAK (FRAME)


<FRAMESET>...</FRAMESET> Frame egitura baten definizioa
<FRAMESET rows="x%, y%,...">
Lehiaren banaketa horizontala
<FRAMESET cols="x%, y%,..."> Lehiaren banaketa bertikala
<FRAME src="orria.htm" name="izena">
Frame lehio batean aurkeztutako orria
<NOFRAMES>...</NOFRAMES>
Frameak onartzen ez dituzten browserrentzat edukia

TARGET HELBURUAK


target = "lehioa"
Hiperlotura adierazitako estekan kargatzen da
target = "_blank" Lehio berri bat irekitzen du
target = "_self" Azpilehio aktiboan kargatzen du hiperlotura
target = "_parent" Aktualaren aurretik definitutako FRAMESETean kargatzen da
target = "_top" Azpilehio guztiak ezabatu eta hiperlotura lehio osoan erakusten da

FORMULARIO ELEMENTUAK


<TEXTAREA>...</TEXTAREA> Lerro anitzeko textu gelatxoa
<SELECT><OPTION>...</OPTION></SELECT> Hainbat aukeren zerrenda zabalgarria
<INPUT type="text">
Lerro bakarreko textu gelatxoa
<INPUT type="password"> "text" bezala, karaktereak "*"-gatik ordezkatuz
<INPUT type="checkbox"> "on"-"off" estatuak dituen laukitxo bat
<INPUT type="radio"> Aldi berean laukitxo bakar bat aukeratzen uzten duen taldea
<INPUT type="submit"> Formularioa bidaltzeko botoia
<INPUT type="reset"> Formularioa garbitzeko botoia
<INPUT type="file"> Fitxategi bat igotzeko menua
<INPUT type="hidden"> Informazio ezkutua
<INPUT type="image"> "Submit" funtzioa duen irudia

Nork: galustiza.2006/12/13 18:46:29.620 GMT+1
Etiketak: web programazio zerrenda lenguaia informatika html | Permalink | Erantzunak (3) | Errenferentziak: (0)

2006/12/13 16:17:10.282 GMT+1

CSS oinarrizko gida

Egilea: Gorka Alustiza

CSS edo “Cascading Style Sheets” (Estilo Orriak Turrustan) HTMLko estrukturaren aurkezpena banatzeko garatutako teknologia bat da, hau da, web dokumentu bat exploratzailean ikustaraztean edukiko duen itxura definitzen du. W3Ck garatutakoa da eta gero eta garrantzia gehiago du diseinuaren munduan, bere erabilerraztasun eta emaitza honengatik.

HTML elementuei erregelak aplikatuz funtzionatzen du, berauen kolore, hondo, borde, letra mota, etab… bezalako propietateak kontrolatuz. Honela, web orriaren zati grafikoa HTML egituratik erabat at geratzen da honek dauzkan onurekin: gure kodigoa antolatu dezakegu, aldaketak errazten ditu, lan fluxua optimizatzen du, orriek gutxiago okupatzen dute…

 

SINTAXIA

Hona hemen aipatutako erregelen adibide bat:

    P { text-align: right; }


Erregela honek HTML kodeko <P></P> etiketen hartean dagoen textua eskuinean alineatuko du. Orain azter dezagun etiketaren egitura. Bi zatitan bana daiteke: batetik aukeratzailea (selector) eta bestetik deklarazioa (declaration), giltzen hartean ( {…}).

Deklarazio bat propietate bat eta bere balioa da. Lehenik propietatearen izena idazten da (text-align), ondoren bi puntu eta azkenik propietate honek izatea nahi dugun balioa (right). Etiketa berean hainbat deklarazio jartzeko, beraien hartean puntu-koma “;”-ren bidez banatu behar dira. Aukeratzaile bat berriz (P) deklarazioa aplikatu nahi diogun HTMLko elementuaren izena izan ohi da. Beste aukera bat, aukeratzailea etiketaren izena izan beharrean “klasearena” edota “identifikatzailearena” izatea da. Ikus adibide konplexuago hau:

 
    TABLE { font-size:15; font-family:sans-serif; }
    TD { font-size:20;}
    TD.burua {font-size:25; color:#0000ff;}}
    #textua { font-size:15; background-color: #ff0000 }
     .izenburua { font-size:20; font-weight:bold; color:#44aa44;}

 

Ikus daitekenez, hiru erregela definitzen ditugu. Lehenak <TABLE></TABLE> etiketen hartean dagoen textuaren tamaina eta letra mota definitzen du eta bigarrenak letra tamaina propio bat definitzen du <TD></TD> etiketentzat.  Hirugarrenak <TD CLASS=”burua”></TD> etiketa definitzen du, <TD></TD> etiketaren “klase” bat. Laugarrenak “textua” identifikatzailea duen etiketari egiten dio so eta azkenak “izenburua” klaseko elementu orori. Ondorengo atalean ikusiko da hau hobeto:

 

CSS ETA HTML

CSS orriak gure HTML kodean aplikatzeko hainbat era daude. Lehena kodea textu artxibo batean gordetzea izango litzateke “.css” izenarekin, eta ondoren gure orrira zuzendu HTML kodean honakoa idatziz:

 

            <LINK HREF=”estiloa.css” REL=”stylesheet” TYPE=”text/css”>

Beste aukera bat gure HTML kodean zuzenean txertatzea izango litzateke ondorengo moduan:

 

    <HTML>
     <HEAD>
         <STYLE TYPE=”text/css”>
              P { font-size:14}
         </STYLE>
    </HEAD>
    <BODY>
    …

 

Orain ikus dezagun CSS eta HTML adibide osoago bat, goran ikusi dugun CSS kodea erabiliz:

 
    <HTML>
    <HEAD>
        <STYLE TYPE=”text/css”>
            TABLE { font-size:15; font-family:sans-serif; }
            TD { font-size:20;}
            TD.burua {font-size:25; color:#0000ff;}
            #textua { font-size:15; background-color: #ff0000; }
            .izenburua { font-size:20; font-weight:bold; color:#44aa44;}
        </STYLE>
    </HEAD>
    <BODY>
        <DIV CLASS=” izenburua”>CSS proba DIV >

        <DIV ID=”textua”>Kaixo mundua!</ DIV >

        <TABLE BORDER>
        <TR>
            <TD CLASS=”burua”>ZERRENDA</TD>
        </TR>
        <TR>
            <TD>1. elementua</TD>
        </TR>
        <TR>
            <TD>2. elementua</TD>
        </TR>
        </TABLE>

    </BODY>
    </HTML>


PROPIETATEEN ZERRENDA


CSSk kontrolatutako bost propietate kategoria daude. Ondoren berauek zerrendatuko dira:

ITURRIEN PROPIETATEAK


Propietatea Deskribapena Balio posibleak
font-family Letra mota
tipoen zerrenda
font-size Letra tamainua
xx-small, x-small, small, medium, large ,x-large, xx-large
font-weight Letra lodiera
normal, bold, bolder, lighter edo 100tik 900ra
font-style Letraren estiloa (etzana)
normal, italic, italic small-caps, oblique, oblique small-caps

HONDO ETA KOLOREAREN PROPIETATEAK

Propietatea Deskribapena Balio posibleak
color
textuaren kolorea
Kolore bat
background Hondoko kolore edo grafikoa
Grafikoaren URLa edota kolore bat


TEXTUAREN PROPIETATEAK


Propietatea Deskribapena Balio posibleak
line-height Lerroen arteko distantzia
Zenbakia ala portzentaia
text-decoration Textuan efektuak
none, underline, overline, line-through, blink
vertical-align Textuaren posizio bertikala
baseline, sub, super, top, text-top, middle, bottom, text-bottom edo portzentaia
text-transform Letra larri edo xehe bihurtu
capitalize, uppercase, lowecase, none
text-align Textuaren alineazioa
left, right, center, justify
text-indent Textuaren lehen izkiaren tabulazioa
Zenbakia edo portzentaia


KOADROAREN PROPIETATEAK


Propietatea Deskribapena Balio posibleak
margin-top, margin-right, margin-bottom, margin-left Bloke baten eta beste elementuen harteko distantzia
Zenbakia edo portzentaia
padding-top, padding-right, padding-bottom, padding-left
Bordearen eta blokearen edukiaren harteko distantzia
Zenbakia edo portzentaia
border-top-width, border-right-width, border-bottom-width, border-left-width
Bloke baten bordearen zabalera
Zenbakia
border-style Borde baten estiloa
none, solid, 3D
border-color Borde baten kolorea
Kolore bat
width, height
Bloke baten tamaina
Zenbakia edo portzentaia
float Bloke baten alineazioa
left, right, none
clear Bere ezkerrean edo eskubian beste elementu bat jarri ahal izateko baimena
left, right, both, none

Nork: galustiza.2006/12/13 16:17:10.282 GMT+1
Etiketak: web diseinu programazio lenguaia informatika gida css | Permalink | Erantzunak (0) | Errenferentziak: (0)

2006/12/12 12:10:38.177 GMT+1

HTML oinarrizko gida

Egilea: Gorka Alustiza

HTML HyperText Markup Lenguageren siglak dira (Marketan oinarritutako Hipertexto lenguaia), web orri baten zati ezberdinak definitzeko erabiltzen den marka lenguai bat, dokumentuaren atalak klasifikatzeko nabigatzaileak orria ondo ikusarazi dezan.

ETIKETAK

Etiketa bat marka unitate bat da, HTMLn definituta dauden sinbolo multzo bat esanahi jakin bat dutenak. Sintaxia honakoa da: ‘txikiago’ sinboloa (<) + hitz gakoa + ‘handiago’ sinboloa (>). Idatzi ondorengo kodigoa ‘notepad’-arekin eta gorde ‘kaixo.htm’ izenarekin zure lehen web orria sortzeko:

 

            <HTML>

            <HEAD>

            <TITLE>

                        Adibidea

            </TITLE>

            </HEAD>

            <BODY>

                        Kaixo mundua!

            </BODY>

            </HTML>

 

Ikusten denez, <HTML> etiketa jartzean HTML dokumentu bat idazten hari garela adierazten dugu, eta </HTML> etiketarekin berau amaitu dela. Behin dokumentuaren barruan, bi atal nabarmendu ditzakezkegu, burua (<HEAD>…</HEAD>) eta dokumentuaren zati nagusia, gorputza (<BODY>…</BODY>). Buruan dokumentuaren izenburua definitu dezakegu <TITLE> eta </TITLE> etiketen hartean. Dokumentuaren gorputzean web orria eraikiko dugu, bere diseinu eta atalekin.

HTMLk etiketa asko ditu definiturik, bakoitzak eginbehar jakin bat duelarik. Textu baten estiloa defini dezake (negrita <B>…</B>, kursiba <I>…</I>), elementuak dokumentuak kokatu (parrafoa definitu <P>…</P>, zentratu <CENTER>…</CENTER>), irudi bat sartu (<IMG SRC=’url’>) edo beste orri batetarako linka idatzi (<A HREF=’url’>…</A>) . Ikusi etiketen zerrenda blog honetan bertan.


GORPUTZA

<BODY> etiketaren atributuei esker dokumentu baten itxura aldatu dezakegu. Sei atributu ditu denera: BGCOLOR, BACKGROUND, TEXT, LINK, VLINK eta ALINK.

Koloreak

HTMLn kolorea definitzeko bi era daude, bata kolorearen izenarekin zuzenean (16 izen daude definiturik)eta beste RGP kodearekin, hau da, Red Green Blue (Gorria, Berdea, Urdina). Azken honek 6 digitu ditu beti: lehen biek gorri kantitatea adierazten dute, hurrengo biek berdearena eta azkenen urdinarena. Hiru kolore primario hauek nahastuta, edozein kolore lor daiteke. # sinboloa izan behar dute aurretik.

 

Kolorea          RGB
Zuria               #FFFFFF
Gorria
#FF0000
Berdea #00FF00
Horia
#FFFF00
Grisa #808080

Hondoko kolorea BGCOLOR atributuarekin doitzeko:

 

            <BODY BGCOLOR=”RED”>

            <BODY BGCOLOR=”#008000”>

 

Koloreaz gain, irudi bat ere jarri daiteke hondo gisa,BACKGROUND atributuarekin:

 

            <BODY BACKGROUND=”irudi.gif”>

 

Orriko textuaren kolorea doitzeko:

 

            <BODY TEXT=”FUCHSIA”>

            <BODY TEXT=”#009090”>

 

Orriko linken kolorea aldatzeko:

 

            <BODY LINK=”TEAL”>

            <BODY LINK=”#FF00FF”>

 

Bisitatuako linken kolorea doitzeko:


            <BODY VLINK=”MAROON”>

            <BODY VLINK=”#800000”>


Link aktiboen (kursorea gainean jartzean) kolorea doitzeko:

 

            <BODY ALINK=”GRAY”>

            <BODY ALINK=”#080800”>

 

FONT elementua

FONT etiketak (<FONT>…</FONT>) bere giltzen hartean dagoen textuaren tamaina, kolorea eta itxura aldatzea ahalbidetzen du, horretarako COLOR (kolorea), SIZE (tamaina) eta FACE (textu mota, Arial, Palatino, etab…) atributuak dituelarik.

 

            <FONT COLOR=”RED” SIZE=”2” FACE=”Arial”>Kaixo!</FONT>

 

TABLAK

Web orri batean informazioa erakusteko modurik txukunena eta erabiliena, tablen bidez da (<TABLE>…</TABLE>). Tabla hauetan lerro horizontalak definitzen dira <TR>…</TR> etiketekin, eta hauen barnean zelda bakoitza sortzeko <TD>…</TD> etiketa. Lerro bateko zelda kopuruak, tablak edukiko dituen zutabe kopurua definitzen du. Hona hemen oinarrizko adibide bat:

            <TABLE>

                <TR>

                    <TD>Izena: </TD>

                    <TD>Patxi</TD>

                </TR>

                <TR>

                    <TD>Abizena: </TD>

                    <TD>Telleria</TD>

                </TR>

            </TABLE>

 

<TABLE> etiketak hainbat atributo ditu, tablaren formatuan ondorengo aukerak ematen dituena:

Tablaren posizio horizontala dokumentuan ALIGN atributuarekin defini daiteke.

 

            <TABLE ALIGN=”LEFT”>

            <TABLE ALIGN=”CENTER”>

            <TABLE ALIGN=”RIGHT”>

 

Tablaren dimentsioak WIDTH (zabalera) eta HEIGHT (altuera) propietateek espezifika daitezke. Bi era daude hau egiteko,  lehio osoaren portzentai gisa adieraziz edota dimentsioa pixel kopurutan idatziz:

 

            <TABLE WIDTH=”100”>

            <TABLE HEIGHT=”50%”>

 

Tablaren eta zelden bordeak (defektuz agertuko ez direnak) ikusarazteko bi era ditugu, “BORDER=borde_kopurua”  idatziz zenbat borde nahi ditugu adieraziz edota BORDER soilik idatziz (hau BORDER=1-en baliokidea da).

 

            <TABLE BORDER>

            <TABLE BORDER=2>

 

Zelden harteko espazioa (pixeletan) defini dezakegu CELLSPACING atributuarekin (defektuz 2):

 

            <TABLE CELLSPACING=”0”>

 

Zeldaren bordearen eta bere barneko elementuaren (textua, irudia…) harteko distantzia definitzeko, CELLPADDING erabil daiteke:

 

            <TABLE CELLPADDING=”0”>

 

Bere aldetik, <TR> eta <TD> etiketek ere bere atributuak dituzte, besteak beste BGCOLOR (hondoko kolorea), ALIGN (tableko datuen alineazio horizontala), VALIGN (tableko datuen alineazio bertikala, TOP, MIDDLE, BOTTOM eta BASELINE balioak har ditzazkelarik). Nabarmendu behar dira COLSPAN eta ROWSPAN atributuak. Lehena zelda alboko zutabeko zeldarekin “fusionatzeko” erabiltzen da, batu nahi diren zelden kopurua adierazita. Bigarrenak zenbat lerro fusionatu behar diren adierazten du.


            <TD COLSPAN=2>

            <TD ROWSPAN=2>

 

MARKOAK

Markoek (frames) nabigatzailearen lehio berean hainbat HTML dokumentu aurkeztea ahalbidetzen dute, lehio independienteak bailira. Ikusi ondorengo adibidea:

 

            <!DOCTYPE HTML PUBLIC “-/W3C/DTD HTML 4.0 Frameset//EN”>

            <HTML LANG=”EN”>

            <HEAD>

            </HEAD>

            <FRAMESET COLS=”50%,50%”>

            <FRAME SRC=”lehen_orria.htm”>

            <FRAME SRC=”bigarren_orria.htm”>

            </FRAMESET>

            </HTML>

 

Markoak erabiltzen ditugunean, DOCTYPE deklarazio bat erabili behar dugu, adibidean ikus daitekeen bezala.  Markoen deklarazioak berriz, <FRAMESET> etiketen hartean eman behar dira, zeinak ROWS eta COLS atributuak ditu, markoen posizioa definitzen dutenak. <FRAME> etiketak, SRC atributu bat du, marko horretan ikusarazi nahi dugun dokumentura apuntatzen egongo delarik.

 

Marko bakoitzari izen bat jarri daiteke, <FRAME> etiketaren NAME atributuarekin; horrela marko honen edukia dinamikoki aldatu ahal izango da bere izenari erreferentzia eginda TARGET atributuari esker, honako adibidean bezala:

 

            <A HREF=”beste_orri.htm” TARGET=”ezkerra”>Orriz aldatu</A>

 

Link honetan klik egitean, “ezkerra” izeneko markoan “beste_orri.htm” orria kargatuko da momentuan zegoenaren ordez.

 

Barne markoak

Markoak erabiltzeko beste aukera bat barne markoak (I-Frames) erabiltzea da. Hauek ez daude frameset batean definitu beharrik, HTML orrian sartzen dira zuzenean.

 

            <IFRAME WIDTH=”200” HEIGHT=”200” SRC=”orria.htm”>

 

FORMULARIOAK

HTMLk duen erabilgarritasunik nabarmenena formularioen txertatzea da. Erabiltzailearik zerbitzarira informazioa bidaltzera ahalbidetzen dute eta <FORM></FORM> etiketen hartean definitzen dira. HirU atributu ditu etiketa honek: ACTION, informazioa jaso behar duenaren helbidea; METHOD, informazioa ACTION atributuko URLari bidali behar zaila adierazten duena (normalean “post”); eta ENCTYPE, informazioa bidaltzeko era definitzen duena (normalean ez da definitzen, artxibo oso bat bidali ez bada nahi behintzat).

 

<FORM ACTION=”postontzia.htm” METHOD=”post>

                        ….

</FORM>

 

erabiltzaileari bidali beharreko informazioa sartzea ahalbidetzeko hainbat formulario elementu daude, erabilienak honakoak direlarik:

 

Textarea

<TEXTAREA></TEXTAREA> etiketen hartean, hainbat lerrotako textua sartzeko balio du. ROWS eta COLS atributuekin tamaina definitzen da. Adb.:

 

<TEXTAREA NAME=”textua” ROWS=5 COLS=30></TEXTAREA>

 

Select

<SELECT></SELECT> etiten hartean, aukeratzeko hainbat elementu ikustarazten ditu, menu desplegable edo “konbo” batean. Aukeratzeko elementuak definitzeko, etiketa nagusien hartean <OPTION></OPTION> etiketak jarri behar dira.

 

            <SELECT NAME=”aukera>

                        <OPTION VALUE=”a”>a</OPTION>

                        <OPTION VALUE=”b”>b</OPTION>

                        <OPTION VALUE=”c”>c</OPTION>

            </SELECT>

 

INPUT

Hainbat motako kontrolak sortzeko balio du, <INPUT TYPE=”mota”> etiketarekin. Motak honakoak izan daitezke: TEXT, lerro bakarreko textu laukitxo bat sortzeko; RADIO, aldi berean aukera bakarra uzten duen botoi taldea; HIDDEN, ikustezina den baina balio bat duen elementua; FILE, artxibo bat aukeratzeko menua; SUBMIT, formularioa bidaltzeko, etab…

 

            <INPUT TYPE=”text” NAME=”izena” VALUE =”Gorka”>

            <INPUT TYPE=”hidden” NAME=”nan” VALUE =”123”>

            <INPUT TYPE=”submit” VALUE=”bidali”>

 

Ikusten denez, elementuen izena NAME atributuaren bidez definitzen da. Izenari esker, formularioko informazioa jasotzen duen orriak elementu bakoitzaren datuak jaso ahal ditu ASP, PHP edota beste zerbitzari aldeko programazio lenguaia baten bidez. Arlo honi buruz informazio gehiago blog honetako PHPren oinarrizko gidan eta ASPren objetuenean.

Nork: galustiza.2006/12/12 12:10:38.177 GMT+1
Etiketak: web programazio lenguaia informatika html gida | Permalink | Erantzunak (0) | Errenferentziak: (0)

2006/12/11 15:19:43.268 GMT+1

ASP objetuak

Egilea: Gorka Alustiza

ASP interneteko aplikazioak sortzeko teknologia bat denez, hainbat prozesu (erabiltzaileren aldagaien kudeaketa, formularioak bidali eta jasotzea…) betetzeko metodologia errez eta eraginkor bat behar du, eta lan honetarako lenguaiari gehitutako modulu batzuei deitzen da, objetuak delakoak.

Objetu hauek bere propietateak dituzte eta eginkizun bat betetzeko exekuta ditzakeen metodo edo funtzioak.

 

REQUEST

Objetu honen bidez, nabigatzaileak zerbitzariari bidaltzen dion informazioa ikus daiteke, formularioen bidez, URLtik edota cookien bidez. Honakoak dira bere propietateak:

 

Form

HTMLko formulario batek (<form>)  “Post” metodoarekin (<form method=post>9 bidalitako elementu guztiak ditu bere baitan. Elementu bakoitzera akzeditzeko:

           

            <% = request.form( “elementuaren_izena” ) %>

 

Ikusi honako adibidea:

            ---------------------Formularioa.htm--------------------

            <html>

            <head></head>

            <body>

            <form action=”formularioa_prozesatu.asp” method=”post”>

                        Izena: <input type=”Text” name=”izena”><br>

                        Abizena: <input type=”Text” name=”abizena”><br>

                        <input type=”submit” value=”Bidali”>

            </form>

            </body>

            </html>

              ---------------formularioa_prozesatu.asp--------------------

            <html>

            <head></head>

            <body>

            <%

            = “izena: “ & request.form(“izena”)

            = “abizena: “ & request.form(“abizena”)

            %>

            </body>

            </html>

 

Cookies

Erabiltzaileak aurretik sortutako cookie bat berreskuratzeko balio du. Hoanko adibidean, lehenako sortu dugun “eguna” cookiea eskuratzen da.

 

            <% = request.cookies(“eguna”) %>

 

QueryString

ASP orri batera parametro gisa bidalitako balio guztiak ditu. ASP orri bati paramtroak pasatzeko era asko daude: bat formularioen bidez ‘GET’ metodo erabilitz izango litzateke; beste bat orriaren orriaren URLan (nabigatzailean helbidearen barran) katiaturiz bidaltzea, horrela:

 

            www.adibide.asp?izena=irati&abizena=esnaola

 

‘izena’ aldagaia eta bere balioa (‘irati’), orriaren helbidearen ondoren idatzi da ‘?’ sinboloarekin katiatuz. Aldagai gehiago bidali nahi badira, ‘&’ sinboloarekin katiatu beharko dira. Ikusi ondorengo adibidea:


            ---------------------Bidali.asp--------------------

            <html>

            <head></head>

            <body>

            <a href=”jaso.asp?izena=irati”> Klik hemen! </a>

            </body>

            </html>

            ----------------formularioa_prozesatu.asp--------------------

            <%

            Response.write(request.queryString(“izena”))

            %>

 

ServerVariables

Zerbitzariari buruzko aldagaien akzesoa ematen du.

            <%

            Response.write (request.ServerVariables(“REMOTE_ADDR”))

            Response.write (request.ServerVariables(“SERVER_SOFTWARE”))

            %>


RESPONSE

Bere funtzioa bezeroari (nabigatzaileari) informazioa bidaltzea da.

 

Honakoak dira bere ezaugarriak:

 

Buffer:

Boolean motako (true/false) ezaugarri honek bidali baino lehen orria bufferrean gorde behar al den adierazten du, hau da, “true” bada orria erabat kargatu ondoren bidaltzen dio bezeroari, edo bestela kargatzen doan einean bidaltzen du. Bezeroari edozer bidali baino lehen erabili beharra dago.

 

            <% response.buffer = true %>

 

Expires:

Ezaugarri honek orria zenbat denboran (minututan) gorde behar den nabigatzailearen cachean adierazten du.

 

            <% response.expires = 5 %>

 

ExpiresAbsolute

Zein egun eta ordurarte gorde behar den orria nabigatzailearen cachean adierazten du.

 

          <% response.expireabsolute = #May 11, 2006 15:30:00# %>


Cookies

Cookie bat sortzen du erabiltzailearren makinan. Cookie bat textu formatuko artxibo bat da, bertan hainbat informazio gordetzen delarik orrien personalizaziorako, bilaketerako, etab… Erakusten den adibidean, “eguna” izeneko cookie bat sortzen da, “date” funtzioaren balioa izango duena (“date” funtzioak data aktuala itzultzen du).

 

            <% response.cookies(“eguna”) = date %>

 

Cookie hau erabiltzaileran sesioa amaitu harte irauten dute, ez bazaio cookiari iraupena lehendik ezartzen:

             <%
             response.cookies(“eguna”).expires=”27/1/2006”
             %>


Honakoak dira bere metodoak:

 

End

Metodo honek ASP orriaren prozesua geratzen du eta prozesatutakoa nabigatzailera bidaltzen.

 

            <% response.end %>

 

Flush

Metodo honek bufferraren edukia nabigatzailera bidaltzen du, betiere Buffer propietatea “true” bada.

 

            <% response.flush %>

 

Redirect (url)

Honekin orri aktuala adierazitakora berbideratzen du.

 

            <% response.redirect “beste_orri.asp” %>

 

Write (katea)

Adierazitako katea idazten du nabitzailean, textu estatiko bat edota HTML etiketa bat izan daitekelarik. “=” sinboloarekin ordezka daiteke

 

            <% response.write(“<b> Kaixo! </b>”)

            <% = “<b> Kaixo! </b>”%>

 

 

SERVER OBJETUA

Objetu honen bidez, zerbitzariaren funtzioetara akzeditu daiteke. Honakoak dira bere propietateak:

 

ScriptTimeout

Orria exekutatzekozai egon behar den gehienezko denbora determinatzen du. Gehiago igaro ezgero, errorea gertatzen da. Defektuz 90 segundu dira.

 

            <% Server.ScriptTimeout = 25 %>

 

Honakoak dira objetuaren metodoak:


CreateObjet

Objetuak sortzea ahalbidetzen du, parametro gisa bere izena behar duelarik. Objetua sortzean, SET hitz gakoarekin aldagai bati asignatzen zaio objetua, bere metodo eta propietate guztiak izango dituelarik.

            <% Set DB = Server.CreateObject(“ADODB.Connection”) %>

 

            Execute (path)

            ASP orri bat beste baten barruan exekutatzen du.

 

            ---------------------nagusia.asp--------------------

            <%

            Server.Execute(“erantzun.asp”)

            %>

 

            ---------------------erantzun.asp--------------------

            <%

            Response.write(“Kaixo!”)

            %>

 

MapPath (path)

Bidalitako artxiboaren ruta osoa itzultzen du.

 

            <% response.write (Server.MapPath(“orria.asp”) %>

 

SESSION OBJETUA

Erabiltzaile baten informazioa orrien hartean elkarbanatzeko balio du. Defektuz orrira sartzean sortzen da eta alde egitean edo 20 minutu ezer egin gabe igarotean deusezten da. Honakoak dira bere propietateak:

 

SessionID

Erabiltzailea identifikatzen duen ID bat itzultzen du. ID hau bakarra da, ezin da aldatu eta zerbitzariak sortzen du.

 

            <%response.write (“ID = “ & Session.SessionID %>

 

Timeout

Sesioa deuseztu aurretik zenbat denbora igaro behar den determinatzen du.

 

            <% Session.Timeout = 30 %>

 

Honakoak dira objetuaren metodoak:

 

Abandon

Sesioa uztea behartzen du, sesio aldagai guztiak deuseztuz.

 

            <%Session.Abandon %>

 

SESIO ALDAGAIAK

Session objetuak duen erabilgarritasun onena aldagaiak sortu eta orritik orrira mantentzeko aukera ematen duela da.

 

            ---------------------a.asp--------------------

            <html>

            <body>

            <%

            Session(“Izena”) = “Leire”

            %>

            </body>

            </html>

 

            ---------------------b.asp--------------------

            <%

            Response.write(Session(“Izena”))

            %>

Nork: galustiza.2006/12/11 15:19:43.268 GMT+1
Etiketak: web asp programazio lenguaia gida objetuak | Permalink | Erantzunak (0) | Errenferentziak: (0)

2006/12/11 13:06:14.085 GMT+1

ASP oinarrizko gida

Egilea: Gorka Alustiza

ASP “Active Server Pages”-en siglak dira, Microsoften “Internet Information Server”-en osagai gisa komertzializatu den zerbitzariaren aldeko teknologia bat, web orrien garapenera zuzendutakoa. ASP teknologiaren hizkuntza, VBScript gidoi lenguaia, Visual Basic-en eratorria da eta oinarrizko funtzioak antzekoak dira bietan. Beste teknologia baten, PHPren, aurkari zuzena da.

ASP lenguaiak kodigo exekutagarria HTML-arekin nahastea ahalbidetzen du. Erabiltzaile batek (edozein nabigatzailek)  orri baten eskaera egitean aloxatuta duen zerbitzariari, berauk ASP kodigoa exekutatuko du, HTML kodigoarekin bat eginez eta emaitza erabiltzaileari itzuliko dio. Azken honek HTML “purua” jasoko du soilik, eta ezin izango du jakin zein kodigo den berez HTML eta zein zerbitzarian ASP exekutatu ondoren sortu dena.

Gure orria Interneteko zerbitzari batera igo beharrean gure ordenagailuan modu lokalean kudeatu nahi badugu, zerbitzari bat sortu behar dugu gure PCan ASP kodigo prozesatu ahal izateko, honetarako “Personal Web Server” edo “Internet Information Server” erabil ditzakegularik.

 

OINARRIZKO LENGUAIA

ASP kodigoa HTMLan txertatu ahal izateko, instrukzioak “<%” eta “%>” giltzen hartean egon beharra dute eta orriak “.asp” luzapena eduki behar du. Txertatu ondorengo kodigoa edozein HTMLz egindako orritan:

 

            <%

            Response.write(“Kaixo!”);

            %>

 

Zerbitzariak behar bezala prozesatu ondoren, nabigatzaileak honakoa jasoko  du soilik:

 

            Kaixo!

 

Lehen aipatu den bezala, zerbitzariak ASP kodigoa exekutatu du eta HTML “purua” itzuli du. Ikusi lenguaiaren sintaxia hobeto ondorengo adibidean:

 

            <%

            a = 12

            b = 4

            emaitza = a + b

            response.write(a & ” eta “ & b & “ren arteko batura “ & emaitza & “ da.”)

            ‘Programa honek 12 + 4 kalkulatzen du

            %>

 

Kodigo honetan “a” eta “b” aldagaiei 12 eta 4 balioak eman zaizkie, eta “emaitza”-ri bien baturaren balioa eman zaio. Ondoren, “response.write” komandoarekin textu bat agertuarazi dugu pantallan, textu estatikoa eta aldagaien balioa katiatuz, “&” sinboloa erabiliz. Kakots “’” sinboloaren ondoren doan textua komentario bat da, programa ezertarako eragingo ez duelarik.

 

ASPn aldagaien deklarazioa ez da nahiataezkoa, orriaren hasieran “Option Explicit” hitz gakoa jartzen ez badugu behintzat, kasu honetan aldagaien deklarazio eza erroretzat joko bait litzateke. Honetarako “Dim” hitza erabili behar da.

 

<%

Option Explicit

Dim aldagai

Aldagai=5

Response.write(aldagai)

‘Aldagaiaren balioa erakusten da

%>

 

Ikusten denez, aldagaiaren tipoak  (zenbakia osoa, hamartarra, textua…) ez du axola, ASPk  berak definitzen ditu. Aipamen berezia merezi duten aldagaiak “array” edota bektoreak dira. Elementu ugari aldi berean gorde ditzazkeen aldagai bereziak dira:

 

            <%

            lagunKop=  3

            lagunak(lagunKop)

            lagunak(0) = “Iker”

            lagunak(1) = “Maider”

            lagunak(2) = “Leire”

            lagunak(3) = “Aitor”

 

            response.write(lagunak(1))

            %>

 

Honakoa itzuliko duelarik:

 

            Maider

 

“lagunak” bektorea “lagunKop”-en balioaren adina elementu (hau da, 3) eduki ditzan definitu dugu. Gero, arrayeko “kaxoi” bakoitzari balio jakin bat eman diogu. Elementu bakoitza lortzeko, arrayaren izena eta elementuaren posizio adierazten duen zenbakia parentesi hartean jarri behar da. Ondorengo eran ere defini genezake array bat:

 

            Lagunak = array(“iker” , “Maider” , “Leire”, “Aitor”)


OPERATZAILEAK

            Operatzaileak eragiketa matematiko zein logikoak (konparaziokoak) egiteko erabiltzen diren sinbolo bereziak dira. Ondoren, ASPko erabilienak:

 

+ Batuketa
5 + 4 = 9
- Kenketa 5 – 4 = 1
* Biderketa 3 * 3 = 9
/ Zatiketa 10 / 2 = 5
% Ondarra 10 % 3 = 1
++ Bat gehitu
$ald++
-- Bat kendu
$ald--
==
"true" itzultzen du baldintza betetzen bada
2 == 2 (Egia)
!=
"true" itzultzen du baldintza ez bada betetzen
2 != 2 (Gezurra)
< "true" zenbaki bat bestea baino txikiagoa bada
2 < 5 (Egia)
> "true" zenbaki bat bestea baino handiagoa bada
6 > 4 (Egia)
<= "true" zenbaki bat bestea baino txikiagoa edo berdin bada 2 <= 2 (Egia)
>= "true" zenbaki bat bestea baino txikiagoa edo berdin bada 2 >= 2 (Egia)

BALDINTZAK

Baldintzak, sententzia baten “egitasunaren” arabera, akzio jakin batzu egiten uzten duten egiturak dira. Erabilienak, beste hizkuntzetan bezala, ‘’if … else’’ eta “select…case” dira. Erabiltzeko era honako da, lehenik “if” hitz gakoa, ondoren aztertu beharreko baldintza, gero “then” eta azkenik baldintza bete ezgero exekutatu beharreko kodigoa. Bloke hau ixteko “End if” hitz gakoa erabili behar da.

 

            <%

            a = 3

            if a = 3 then

                        response.write(“Aldagaiaren balioa 3 da”)

            end if

            %>

 

“Else” altenatibarekin, adierazitako balintza betetzen ez bada beste kodigo bat exekutatu dezakegu:

 

            <%

            a = 3

            if a = 3 then

                        response.write(“Aldagaiaren balioa 3 da”)

            else

                        response.write(“Aldagaiaren balioa ez da 3”)

            end if

            %>

 

Adierazi diogun baldintza betetzen bada (a = 3) “Aldagaiaren balioa 3 da” textua idatziko du eta ez bada betetzen, bestea. Baldintzan berdinketa “=” bat erabili beharrean beste operaratzaile bat erabili dezakegu: handiagoa “>”, txikiago “<”, ezberdin “!=” edota gorago aipatu ditugun edozein.

Select…case” baldintzak berriz programari bi bide (“egia-gezurra”) baino gehiago eskaintzen dizkio exekutatzeko, adierazitako sententziak hartzen duen balioaren arabera. “Select case” hitz gakoarekin irekitzen da blokea, ondoren parentesi hartean aztertu nahi den aldagaia jarri eta gero, aldagaiak har ditzakeen balio bakoitzarentzat “Case” hitza, kasu horretako balioa eta bete nahi diren aginduak, azkenenan “end select”-ekin blokea itxiz:

 

            <%

            select case (aldagai)

                        case 1:

                                   …

                        case 2:

                                  

                        case 3:

                                   …

            End select    

            %>

 

BUKLEAK

Bukle bat, baldintza jakin bat bete arte akzio bat etengabe exekutatzen duen instrukzio bat da. Bi bukle mota daude, ‘’for’’ eta ‘’while’’.

 

            <%

            for i = 1 to 5

                        response.write(“Hau “ & i & “garren aldia da 5etitk”)

            next

            %>


Era honetan, buklea 5 aldiz errepikatuko da (1etik 5era), “i” aldagaia inkrementatzen doan einean (i=1, 2, 3, 4, 5). Balio aldaketa kontrola dezakegu “step” hitz gakoarekin:

 

            <%

            for i = 1 to 10 step 2

                        response.write(“Hau binaka errepikatzen da”)

            next

            %>

 

Horrela, bukle hau ere 5 aldiz errepikatuko da (i=2, 4, 6, 8, 10). “i”ren hasierako eta bukaerako balioak ere aldatzea daude.

Beste bukle mota bat “while…wend” da, baldintza bat betetzen den bitartean exekutatuko dena:


            <%

            i = 0

            while i<10

                        response.write(“i = “ & i)

                        i = i + 1

            wend

            %>

Nork: galustiza.2006/12/11 13:06:14.085 GMT+1
Etiketak: web asp euskara programazio lenguaia informatika gida | Permalink | Erantzunak (0) | Errenferentziak: (0)

2006/12/11 12:33:11.864 GMT+1

PHP oinarrizko gida

PHP script (“gidoi”) lenguaia bat da, besteak beste, web orrien dinamismoa handitzeko diseinatua. Hasieran, web orrien mantenuan laguntzeko sortutako makro talde bat besterik ez zen, baina ordutik bere ezaugarriak hazten joan dira, datu base handiek osatzen duten lan-inguruak maneiatzeko gai den programazio lenguaia erabilgarri bat izateraino. Bere arrakasta, besteak beste, C programazio lenguaiaren sintaxiarekin duen parekotasunagatik, bere habiaduragatik eta bere sinpli