XML ներածություն

eXtensible Markup Language (նշագրման ընդլայնվող լեզու)

a.kolyan / @hanumanum

Նախաբան

էքսպերիմենտ 1

նկարագրեք հետևյալ գրքերի տվյալները, օգտագործելով միայն տեքստային խմբագրիչ (notepad)


Ավելի մանրամասն ինֆորմացիա տեսեք այստեղ

էքսպերիմենտ 2

նկարագրեք հետևյալ գրաֆիկում արտացոլված տվյալները, օգտագործելով միայն տեքստային խմբագրիչ (notepad)


XML-ի նշանակությունը


  • XML-ը ստեղծվել է տվյալներ նկարագրելու համար

  • XML-ը տվյալներ փոխանցելու միջոց է, որը անկախ է ծրագրային ապահովումից և ապարատային պլատֆորմից

  • Գրքերի որևէ ցանկ XML-ի միջոցով կարելի է նկարագրել օրինակ այսպես


    
    
      
        Everyday Italian
        Giada De Laurentiis
      
      
        Harry Potter
        J K. Rowling
      
      
        Learning XML
        Erik T. Ray
      
    
    
    

    XML-ի կառուցման հիմունքները

    Թեգ (tag)

    Թեգերը նշագրման մասն են, XML-ում թեգերը նախապես սահմանված չէն, դրանց սահմանումը և օգտագործումը ծրագրավորողի պատասխանատվությունն է

    
    <?xml version="1.0" encoding="UTF-8"?>
    
    	Ռանչպարների կանչը
    	Խաչիկ Դաշտենց 
    
    	

    Թեգերը կարող են ներդրված լինել իրար մեջ և կարող են ունենալ ատրիբուտներ

    		
    		
      
        Everyday Italian
        Giada De Laurentiis
        2005
        30.00
      
      
        Harry Potter
        J K. Rowling
        2005
        29.99
      
      
        Learning XML
        Erik T. Ray
        2003
        39.95
      
    
    

    Թեգերի ներդրվածությունը հնարավորություն է տալիս XML փաստաթղթին վերաբերվել որպես ծառի

    որտեղ կան ՝

    • Ծառի արմատը (bookstore)
    • Ծառի ճյուղերը (book)
    • Book ճյուղի ենթաճյուղերը (title,author,year,price)

    XML-ի շարահյուսությունը

    1. Փակվող թեգեր

    Բոլոր թեգերը պիտի փակվեն

    Սխալ տարբերակներ
    
    		
    Լոռեմ իփսում ․․․․
    Լոռեմ իփսում ․․․․
    Ճիշտ տարբերակներ
    
    		Լոռեմ իփսում 
    Լոռեմ իփսում	
    	

    2. ՔեյսՍենսիթիվ թեգեր

    XML-ում թեգերը զգայուն են ռեգիստրի նկատմամբ

    Սխալ տարբերակներ
    
    <artist>Ջիմ Մորրիսսոն</Artist>
    <Song>Լայթ մայ ֆայր</song>
    	
    Ճիշտ տարբերակներ
    
    		Ջիմ Մորրիսսոն
    Լայթ մայ ֆայր	
    	

    3. Ճշգրիտ ներդրվածություն

    թեգերը պիտի լինեն ճշգրիտ ներդրված

    Սխալ տարբերակ
    
    <b><i>Այս տեքստը bold և italic է</b></i>	
    Ճիշտ տարբերակ
    
    		Այս տեքստը bold և italic է	
    	

    4. Արմատական(root) էլեմենտ

    ամեն փաստաթուղթ պիտի ունենա արմատական(root) էլեմենտ, որը հանդիսանում է բլոր էլեմենտների նախահայրը

    
    	
      
        .....
      
    
    	

    5. Ատրիբուտները չակերտների մեջ

    բոլոր ատրիբուտները պիտի տեղադրված լինեն չակերտներում

    
    
      Tove
      Jani
    
    	

    Հատուկ նշաններ

    &lt; < less than
    &gt; > greater than
    &amp; & ampersand 
    &apos; ' apostrophe
    &quot; " quotation mark

    XML անվանատարածքներ(Namespaces)

    Խնդիր

    
    <table>
      <tr>
        <td>Apples</td>
        <td>Bananas</td>
      </tr>
    </table>
    
    <table>
      <name>African Coffee Table</name>
      <width>80</width>
      <length>120</length>
    </table>
    			

    Լուծում

    		
    		
    
    
      
        Apples
        Bananas
      
    
    
    
      African Coffee Table
      80
      120
    
    
    
    

    xmlns ատրիբուտում նշվում է, թե որ անվանատարածքից է վերցված անվանումը

    XML ցուցադրում

    Ժամանակակից դիտարկիչներով կարելի է նայել XML ֆայլեր

    XML փաստաթղթերի ձևավորման եղանակներից մեկը, CSS-ի օգտագործումն է

    
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/css" href="cd_catalog.css"?>
    
      
        Empire Burlesque
        Bob Dylan
        USA
        Columbia
        10.90
        1985
      
      
        Hide your heart
        Bonnie Tyler
        UK
        CBS Records
        9.90
        1988
      
    		
    

    XML վավերացում (validation)

    Լավ կազմված XML (Well Formed XML)

    համապատասխանում է հետևյալ պահանջներին

    • ունի root էլեմենտ
    • բոլոր էլեմենտները ունեն փակվող թեգեր
    • թեգերը քեյսսեսնսիթիվ են
    • էլեմենտները ճիշտ ներդրվածություն ունեն
    • ատրիբուտների արժեքները ներառված են չակերտներում

    XML փաստաթղթի լավ կազմվածությունը կարելի է ստուգել այստեղ

    Վավերականություն (valid)

    XML փաստաթղթերը կարող են ունենալ սահմանումներ, թե ինչպիսի տվյալներ ու կառուցվածք պիտի պարունակեն իրենց մեջ, այդ սահմանումներին համապատասխանությությունը անվնաում են վավերականություն (validity)

    Կանոնները կարող են սահմանվել երկու տարբեր տեխնոլոգիաների միջոցով

    • DTD
    • XML Schema

    DTD - Document Type Definition

    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note SYSTEM "Note.dtd">
    
    Tove
    Jani
    Reminder
    <body>Don't forget me this weekend!</body>
    
    

    Note.dtd- ֆայլում

    
    <!DOCTYPE note
    [
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
    ]>
    

    Note.dtd- ֆայլում

    
    <!DOCTYPE note
    [
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
    ]>
    
    • !DOCTYPE note սահմանում է որ արմատը note֊ն է
    • !ELEMENT note սահմանում է որ note֊ը պարունակում է չորս էլեմենտ: "to, from, heading, body"
    • !ELEMENT to սահմանում է, որ to֊ում պիտի լինի "#PCDATA" տիպի տվյալներ

    #PCDATA-ն տեքստային տվյալ է

    XML Schema

    XML Schema-ն XML-ի վրա հիմնված DTD-ի այլընտրանք է

    
    <?xml version="1.0" encoding="UTF-8"?>
    
    Tove
    Jani
    Reminder
    <body>Don't forget me this weekend!</body>
    
    

    Սահմանումը XML Schema֊ի միջոցով

    		
    <xs:element name="note">
    	<xs:complexType>
    	  <xs:sequence>
    	    <xs:element name="to" type="xs:string"/>
    	    <xs:element name="from" type="xs:string"/>
    	    <xs:element name="heading" type="xs:string"/>
    	    <xs:element name="body" type="xs:string"/>
    	  </xs:sequence>
    	</xs:complexType>
    </xs:element>
    

    XML տեխնոլոգիաներ

    XPath

    XPath-ը

    • XPath-ը XML փաստաթղթում ճանապարհները սահմանելու լեզու է
    • XPath-ը ստանդարտ ֆունկցիաների գրադարան ունի
    • XPath-ը օգտագործում է ճանապարհային արտահայտություններ, ընտրելու համար XML հանգույցներ կամ հանգույցների խմբեր
    
    <?xml version="1.0" encoding="UTF-8"?>
    
    
    
      Everyday Italian
      Giada De Laurentiis
      2005
      30.00
    
    
    
      Harry Potter
      J K. Rowling
      2005
      29.99
    
    
    
      XQuery Kick Start
      James McGovern
      Per Bothner
      Kurt Cagle
      James Linn
      Vaidyanathan Nagarajan
      2003
      49.99
    
    
    
      Learning XML
      Erik T. Ray
      2003
      39.95
    
    
    
    
    XPath արտահայտություն Արդյունք
    /bookstore/book[1] Ընտրում է bookstore հանգույցի առաջին որդի book հանգույցը
    /bookstore/book[last()] Ընտրում է bookstore հանգույցի վերջին որդի book հանգույցը
    /bookstore/book[last()-1] Ընտրում է bookstore հանգույցի նախավերջին որդի book հանգույցը
    /bookstore/book[position()<3] Ընտրում է bookstore հանգույցի առաջին երկու որդի book հանգույցները
    //title[@lang] Ընտրում է բոլոր title էլեմենտները, որոնք ունեն lang ատրիբուտ
    //title[@lang='en'] Ընտրում է բոլոր title էլեմենտները, որոնց lang ատրիբուտի արժեքը հավասար է "en"
    /bookstore/book[price>35.00] ընտրում է bookstore-ի որդի book էլեմենտներից նրանք, որոնց price-ը մեծ է 35.00
    /bookstore/book[price>35.00]/title վերը նշված էլեմենտների title որդի էլեմենտը

    XSLT
    (eXtensible Stylesheet Language Transformations)

    XSLT-ն օգտագործվում է XML փաստաթղթերը տրանսֆորմացնելու համար

    Մեկ օրինակ կարելի է տեսնել այստեղ

    Վերջ

    պատրաստեց Ա․ Կոլյանը