JavaRush /Java Blogu /Random-AZ /Java Proqramçısı üçün XML Əsasları. 3-cü hissənin 2-ci hi...
Ярослав
Səviyyə
Днепр

Java Proqramçısı üçün XML Əsasları. 3-cü hissənin 2-ci hissəsi

Qrupda dərc edilmişdir

Giriş

Salam, məqaləmin əziz oxucuları. Bu, XML haqqında seriyanın ikinci məqaləsidir və bu məqalə XML Ad Məkanı və XML Sxema haqqında danışacaq.
XML Əsasları
Bu yaxınlarda mən özüm də bu barədə heç nə bilmirdim, amma çoxlu materialı mənimsəmişəm və bu iki vacib mövzunu sadə sözlərlə izah etməyə çalışacağam. Dərhal demək istəyirəm ki, sxemlər XML sənədlərini təsdiqləmək üçün çox təkmil mexanizmdir və DTD-lərdən daha funksionaldır, ona görə də burada onların tam öyrənilməsi olmayacaq. Gəlin başlayaq :)

XML Ad Məkanı

Ad məkanı "ad sahəsi" deməkdir, lakin bu məqalədə mən tez-tez rus ifadəsini sadəcə ad sahəsi ilə əvəz edəcəyəm, çünki daha qısa və başa düşülməsi daha asandır. XML Namespace, əsas məqsədi XML faylında bütün elementlərin unikal olmasına və qarışıqlığın olmamasına əmin olmaq olan texnologiyadır. Bunlar Java kursları olduğu üçün eyni texnologiya Java paketlərində də mövcuddur. Eyni adlı iki sinfi bir-birinin yanına qoyub onlardan istifadə etsəydik, hansı sinfə ehtiyacımız olduğunu necə müəyyən edərdik? Bu problem paketlər vasitəsilə həll olunur - biz sadəcə olaraq müxtəlif paketlərdə sinifləri yerləşdirə və onları oradan idxal edə, istədiyiniz paketin dəqiq adını və ona gedən yolu göstərə və ya sadəcə olaraq istədiyiniz sinfə tam yolu göstərə bilərik. Java Proqramçısı üçün XML Əsasları.  3-dən 2-ci hissə - 1İndi bunu edə bilərik:
public class ExampleInvocation {
    public static void main(String[] args) {
        // Creation экземпляра класса из первого пакета.
        example_package_1.Example example1 = new example_package_1.Example();

        // Creation экземпляра класса из второго пакета.
        example_package_2.Example example2 = new example_package_2.Example();

        // Creation экземпляра класса из третьего пакета.
        example_package_3.Example example3 = new example_package_3.Example();
    }
}
XML Namespace-də hər şey demək olar ki, eynidir, bir az fərqlidir. Mahiyyət eynidir: əgər elementlər eynidirsə (siniflər kimi), onda biz sadəcə onları müxtəlif ad məkanlarında istifadə etməliyik (paketləri göstərin), o zaman elementlərin (siniflərin) adları üst-üstə düşməyə başlasa belə, biz yenə də boşluqdan müəyyən bir elementə daxil olmaq (paket). Məsələn: XML-də iki elementimiz var - proqnozlaşdırma (oracle) və Oracle verilənlər bazası.
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <oracle>
        <connection value="jdbc:oracle:thin:@10.220.140.48:1521:test1" />
        <user value="root" />
        <password value="111" />
    </oracle>

    <oracle>
        Сегодня вы будете заняты весь день.
    </oracle>
</root>
Və bu XML faylını emal edərkən, verilənlər bazası əvəzinə bir proqnoz alsaq və geri dönsək, ciddi şəkildə çaşacağıq. Elementlərin toqquşmasını həll etmək üçün onların hər birinə ayrı-ayrılıqda yer ayıra bilərik. Bunun üçün xüsusi atribut var – xmlns:prefix= “ad sahəsi üçün unikal dəyər”. Bundan sonra biz elementlərin həmin ad sahəsinin bir hissəsi olduğunu göstərmək üçün prefiks edə bilərik (əsasən, paket yolu - ad sahəsi yaratmalıyıq və sonra hər bir elementin hansı paketə aid olduğunu prefiks etməliyik).
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <database:oracle xmlns:database="Unique ID #1">
        <connection value="jdbc:oracle:thin:@10.220.140.48:1521:test1" />
        <user value="root" />
        <password value="111" />
    </database:oracle>

    <oracle:oracle xmlns:oracle="Unique ID #2">
        Сегодня вы будете заняты весь день.
    </oracle:oracle>
</root>
Bu nümunədə biz iki ad sahəsi elan etdik: verilənlər bazası və oracle. İndi elementlərdən əvvəl ad sahəsi prefikslərindən istifadə edə bilərsiniz. İndi bir şey aydın deyilsə, qorxmağa ehtiyac yoxdur. Əslində, çox sadədir. Əvvəlcə məqalənin bu hissəsini daha tez yazmaq istədim, lakin çərşənbə günündən sonra çaşqınlıq və ya nəyisə başa düşməmək asan olduğu üçün bu mövzuya daha çox diqqət yetirməli olduğuma qərar verdim. İndi xmlns atributuna çox diqqət yetiriləcək. Və beləliklə, başqa bir misal:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.fish-shop.com/">
    <gun:shop>
        <gun:guns>
            <gun:gun name="Revolver" price="1250$" max_ammo="7" />
            <gun:gun name="M4A1" price="3250$" max_ammo="30" />
            <gun:gun name="9mm Pistol" price="450$" max_ammo="12" />
        </gun:guns>
    </gun:shop>

    <fish:shop>
        <fish:fishes>
            <fish:fish name="Shark" price="1000$" />
            <fish:fish name="Tuna" price="5$" />
            <fish:fish name="Capelin" price="1$" />
        </fish:fishes>
    </fish:shop>
</root>
Silah anbarı üçün unikal elementlər və balıq ovu üçün unikal elementlər saxlamaq üçün boşluqlar tapançasından istifadə edərək adi XML-i görə bilərsiniz. Görürsünüz ki, boşluqlar yaratmaqla biz bir mağaza elementini eyni anda iki fərqli şey üçün istifadə etdik - silah mağazası və balıq mağazası və boşluqları elan etdiyimiz üçün onun hansı mağaza olduğunu dəqiq bilirik. Ən maraqlısı, eyni elementləri olan müxtəlif strukturları bu şəkildə təsdiq edə bildiyimiz zaman sxemlərdə başlayacaq. xmlns ad məkanını elan etmək üçün atributdur, istənilən elementdə göstərilə bilər. Ad məkanı bəyannaməsinə nümunə:
xmlns:shop= «https://barber-shop.com/»
İki nöqtədən sonra prefiksdir - bu, elementlərdən əvvəl onların həmin boşluqdan gəldiyini göstərmək üçün istifadə edilə bilən boşluq istinadıdır. xmlns dəyəri UNİKAL STRING olmalıdır. Bunu başa düşmək çox vacibdir: ad məkanını elan etmək üçün veb-sayt bağlantılarından və ya URI-lərdən istifadə etmək çox yaygındır. Bu qayda standartdır, çünki linkin URI və ya URL-si unikaldır, AMMA burada çox çaşdırıcı olur. Sadəcə unutmayın: dəyər istədiyiniz sətir ola bilər, lakin onun unikal və standart olduğuna əmin olmaq üçün siz URL və ya URI istifadə etməlisiniz. İstənilən sətirdən istifadə edə biləcəyiniz fakt Oracle-dakı nümunədə göstərilir:
xmlns:oracle="Unique ID #2"
xmlns:database="Unique ID #1"
Ad sahəsini elan edərkən, onu elementin özündə və onun içindəki bütün elementlərdə istifadə edə bilərsiniz, beləliklə, kök elementdə elan edilmiş ad boşluqları bütün elementlərdə istifadə oluna bilər. Bunu sonuncu misalda görmək olar və daha konkret bir nümunə:
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <el1:element1 xmlns:el1="Element#1 Unique String">
        <el1:innerElement>

        </el1:innerElement>
    </el1:element1>


    <el2:element2 xmlns:el2="Element#2 Unique String">
        <el2:innerElement>

        </el2:innerElement>
    </el2:element2>


    <el3:element3 xmlns:el3="Element#3 Unique String">
        <el3:innerElement>
            <el1:innerInnerElement> <!-- Так нельзя, потому что пространство el1 объявлено только в первом элементе, потому может использовать только внутри первого element и его внутренних элементов. -->

            </el1:innerInnerElement>
        </el3:innerElement>
    </el3:element3>
</root>
Burada vacib bir detal var: kök elementdə standart ad sahəsi də var. Əgər siz başqa ad boşluqlarını elan etsəniz, siz standartı ləğv edirsiniz və ondan istifadə edə bilməzsiniz. Sonra kök elementin önünə bir növ boşluq prefiksi qoymalısınız, əvvəllər elan etdiyiniz hər hansı. Bununla belə, bu da aldadıla bilər: standart məkanı açıq şəkildə elan edə bilərsiniz. Sadəcə xmlns-dən sonra prefiksdən istifadə etməmək kifayətdir, dərhal müəyyən bir dəyər yazmaq kifayətdir və prefikssiz bütün elementləriniz bu xüsusi ad sahəsinə aid olacaq. Son nümunə bundan istifadə etdi:
<root xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.fish-shop.com/">
Silah və ya balıqdan istifadə ehtiyacının qarşısını almaq üçün standart məkanı açıq şəkildə elan etdik, çünki kök element nə balıqçılıq mağazasının, nə də silahın obyekti deyil, ona görə də hər iki boşluqdan istifadə məntiqi cəhətdən düzgün olmazdı. Sonrakı: əgər siz xmlns:a və xmlns:b yaratmısınızsa, lakin onlar eyni dəyərə malikdirlərsə, bu, eyni boşluqdur və onlar unikal deyil. Buna görə həmişə unikal dəyərlərdən istifadə etməlisiniz, çünki bu qaydanın pozulması çox sayda səhv yarada bilər. Məsələn, bu kimi elan edilmiş boşluqlarımız olsaydı:
xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.gun-shop.com/"
Onda bizim balıqçı mağazamız silah mağazasına çevriləcək, prefiks isə yenə də balıq dükanı olacaqdı. Bütün bunlar boşluqların əsas məqamlarıdır. Mən onların hamısını toplamaq və azaltmaq üçün kifayət qədər çox vaxt sərf etdim və sonra onları aydın şəkildə ifadə etdim, çünki İnternetdəki boşluqlar haqqında məlumat çox böyükdür və çox vaxt sadəcə sudur, buna görə də burada olan hər şeyin əksəriyyətini sınaqdan keçirərək özüm öyrəndim. və səhv. Hələ suallarınız varsa, məqalənin sonundakı bağlantılardan istifadə edərək materialları oxumağa cəhd edə bilərsiniz.

XML sxemi

Dərhal demək istəyirəm ki, bu məqalə yalnız aysberqin görünən hissəsi olacaq, çünki mövzu çox genişdir. Sxemlərlə daha ətraflı tanış olmaq və hər hansı bir mürəkkəbliyi özünüz necə yazacağınızı öyrənmək istəyirsinizsə, məqalənin sonunda hər şeyin müxtəlif növlər, məhdudiyyətlər, uzantılar və s. haqqında olacağı bir keçid olacaq. Mən nəzəriyyə ilə başlamaq istəyirəm. Sxemlər .xsd (xml sxem tərifi) formatına malikdir və DTD-lərə daha təkmil və populyar alternativdir: onlar həmçinin elementlər yarada, onları təsvir edə və s. Bununla belə, bir çox bonuslar əlavə edildi: növün yoxlanılması, ad sahəsi dəstəyi və daha geniş funksionallıq. Yadınızdadırsa, DTD haqqında danışarkən, boşluqları dəstəkləmədiyi bir mənfi var idi? İndi biz bunu tədqiq etdikdən sonra izah edəcəyəm: eyni elementlərin olduğu DTD-dən iki və ya daha çox sxemi idxal etmək mümkün olsaydı, bizdə toqquşmalar (təsadüflər) olardı və onlardan heç istifadə edə bilməzdik, çünki bizə hansı element lazım olduğu aydın deyil. XSD bu problemi həll edir, çünki siz sxemləri müəyyən bir məkana idxal edə və ondan istifadə edə bilərsiniz. Əslində, hər bir XSD sxeminin hədəf sahəsi var, yəni sxem XML faylında hansı məkanda yazılmalıdır. Beləliklə, XML faylının özündə, sadəcə olaraq, sxemlərdə əvvəlcədən müəyyən edilmiş bu boşluqları yaratmalı və onlara prefikslər təyin etməli və sonra lazımi sxemləri onların hər birinə bağlamalıyıq, bundan sonra biz sxemdən prefiksləri əvəz edərək, sxemdən etibarlı şəkildə istifadə edə bilərik. sxemləri idxal etdiyimiz yer. Beləliklə, bir nümunəmiz var:
<?xml version="1.0" encoding="UTF-8"?>
<house>
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</house>
Biz onu sxemlə təsdiqləmək istəyirik. Əvvəlcə bir sxemə ehtiyacımız var:
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.nedvigimost.com/">
    <element name="house">
        <complexType>
            <sequence>
                <element name="address" type="string" maxOccurs="unbounded" minOccurs="0" />
                <element name="owner" maxOccurs="unbounded" minOccurs="0" >
                    <complexType>
                        <sequence>
                            <element name="telephone" type="string" />
                        </sequence>
                        <attribute name="name" type="string" use="required"/>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>
Gördüyünüz kimi, sxemlər həm də XML fayllarıdır. Sizə lazım olanı birbaşa XML-də yazırsınız. Bu sxem yuxarıdakı nümunədən XML faylını təsdiq edə bilir. Məsələn: sahibinin adı yoxdursa, dövrə bunu görəcək. Həmçinin, ardıcıllıq elementi sayəsində həmişə ünvan birinci, sonra isə evin sahibi olmalıdır. Adi və mürəkkəb elementlər var. Müntəzəm elementlər yalnız müəyyən növ məlumatları saxlayan elementlərdir. Misal:
<element name="telephone" type="string" />
Biz sətri saxlayan elementi belə elan edirik. Bu elementin içərisində başqa elementlər olmamalıdır. Kompleks elementlər də var. Mürəkkəb elementlər digər elementləri və atributları öz daxilində saxlamağa qadirdir. Sonra növü göstərməyə ehtiyac yoxdur, ancaq elementin içərisində mürəkkəb bir növü yazmağa başlayın.
<complexType>
    <sequence>
        <element name="address" type="string" maxOccurs="unbounded" minOccurs="0" />
        <element name="owner" maxOccurs="unbounded" minOccurs="0" >
            <complexType>
                <sequence>
                    <element name="telephone" type="string" />
                </sequence>
                <attribute name="name" type="string" use="required"/>
            </complexType>
        </element>
    </sequence>
</complexType>
Bu, başqa cür də edilə bilər: siz ayrıca kompleks bir növ yarada və sonra onu tiplə əvəz edə bilərsiniz. Yalnız bu nümunəni yazarkən nədənsə standartdan istifadə etməmək üçün bir növ prefiks altında boşluq elan etmək lazım idi. Ümumiyyətlə, belə çıxdı:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.nedvigimost.com/">
    <xs:element name="house" type="content" />

    <xs:complexType name="content">
        <xs:sequence>
            <xs:element name="address" type="xs:string" maxOccurs="unbounded" minOccurs="0" />
            <xs:element name="owner" maxOccurs="unbounded" minOccurs="0" >
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="telephone" type="xs:string" />
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
Bu yolla biz öz növlərimizi ayrıca yarada və sonra onları type atributunda bir yerdə əvəz edə bilərik. Bu, müxtəlif yerlərdə bir növü istifadə etməyə imkan verdiyi üçün çox rahatdır. Mən birləşdirici sxemlər haqqında daha çox danışmaq və burada bitirmək istərdim. Bir dövrəni birləşdirməyin iki yolu var: müəyyən bir məkana və sadəcə birləşdirin.

Dövrəni birləşdirməyin ilk yolu

Birinci üsul dövrənin müəyyən bir hədəf sahəsinə malik olduğunu nəzərdə tutur. O, sxem elementində targetNamespace atributundan istifadə etməklə müəyyən edilir. Sonra XML faylında BU EYNİ boşluq yaratmaq və sonra sxemi orada "yükləmək" kifayətdir:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="https://www.nedvigimost.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.nedvigimost.com/ example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</nedvig:house>
İki xətti başa düşmək vacibdir:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemeLocation="https://www.nedvigimost.com/ example_schema1.xsd"
Birinci sətir - sadəcə xatırlayın. Bunu getmək lazım olan yerə sxemləri yükləməyə kömək edən bir obyekt kimi düşünün. İkinci sətir xüsusi yükləmədir. schemaLocation boşluqla ayrılmış "dəyər - dəyər" formasının dəyərlərinin siyahısını qəbul edir. Birinci arqument sxemdəki hədəf ad sahəsinə (hədəfNamespace dəyəri) uyğun gəlməli olan ad sahəsidir. İkinci arqument sxemə nisbi və ya mütləq yoldur. Və bu SİYAHI dəyəri olduğu üçün misaldakı sxemdən sonra boşluq qoyub yenidən hədəf sahəsini və başqa sxemin adını və s. istədiyiniz qədər daxil edə bilərsiniz. Əhəmiyyətli:Sxemanın daha sonra nəyisə təsdiq etməsi üçün bu boşluğu elan etməli və onu prefikslə istifadə etməlisiniz. Son nümunəyə diqqətlə baxın:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="https://www.nedvigimost.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.nedvigimost.com/ example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</nedvig:house>
Biz bu hədəf məkanını nedvig prefiksində yaratdıq və sonra ondan istifadə etdik. Beləliklə, elementlərimiz təsdiqlənməyə başladı, çünki biz hədəf sxem məkanına istinad edilən məkandan istifadə etməyə başladıq.

Dövrəni birləşdirməyin ikinci yolu

Dövrəni birləşdirməyin ikinci yolu, dövrənin müəyyən bir hədəf sahəsinin olmadığını nəzərdə tutur. Sonra onu sadəcə XML faylına qoşa bilərsiniz və o, onu təsdiq edəcək. Bu, demək olar ki, eyni şəkildə edilir, yalnız XML faylında boşluqları elan edə bilməzsiniz, sadəcə sxemi birləşdirin.
<?xml version="1.0" encoding="UTF-8"?>
<house xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</house>
Gördüyünüz kimi, bu, noNamespaceSchemaLocation istifadə edərək və sxemə gedən yolu göstərərək edilir. Sxemin hədəf sahəsi olmasa belə, sənəd təsdiqlənəcək. Və son toxunuş: biz digər diaqramları diaqramlara idxal edə bilərik və sonra bir diaqramdakı elementləri digərində istifadə edə bilərik. Beləliklə, bəzi sxemlərdə başqalarında olan elementlərdən istifadə edə bilərik. Misal:

Sahib növünün elan edildiyi sxem:

<?xml version="1.0" encoding="UTF-8" ?>
<schema targetNamespace="bonus" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <complexType name="owner">
            <all>
                <element name="telephone" type="string" />
            </all>
            <attribute name="name" type="string" />
        </complexType>
</schema>

Birinci sxemdən sahib növündən istifadə edən ikinci sxem:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="main" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:bonus="bonus" elementFormDefault="qualified">
    <import namespace="bonus" schemaLocation="xsd2.xsd" />
    <element name="house">
        <complexType>
            <all>
              <element name="address" type="string" />
                <element name="owner" type="bonus:owner" />
            </all>
        </complexType>
    </element>
</schema>
İkinci sxem aşağıdakı tikintidən istifadə edir:
<import namespace="bonus" schemaLocation="xsd2.xsd" />
Bundan istifadə edərək, bonus sahəsinə növ və elementləri bir sxemdən digərinə idxal etdik. Beləliklə, biz bonus əldə edə bilərik: sahib növü. Və növbəti sətirdə ondan istifadə etdik:
<element name="owner" type="bonus:owner" />
Aşağıdakı xəttə də bir az diqqət yetirin:
elementFormDefault="qualified"
Bu atribut sxemdə elan edilib və o deməkdir ki, XML fayllarında hər bir element özündən əvvəl açıq prefikslə elan edilməlidir. Əgər orada deyilsə, onda biz sadəcə prefiksi olan xarici elementi elan etməliyik, həmçinin içəridəki bütün elementlərdə prefikslər təyin etməliyik ki, bu sxemin elementlərindən tam olaraq istifadə etdiyimizi açıq şəkildə göstərir. Və burada, əslində, başqa bir sxem idxal edən bir sxem tərəfindən təsdiqlənmiş bir XML faylının nümunəsidir:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="main" xmlns:bonus="bonus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="main xsd.xsd">
    <nedvig:address>ул. Есенина, дом №5</nedvig:address>
    <nedvig:owner name="Ivan">
        <bonus:telephone>+38-094-521-77-35</bonus:telephone>
    </nedvig:owner>
</nedvig:house>
Sırada:
<bonus:telephone>+38-094-521-77-35</bonus:telephone>
Birinci sxemin hədəf sahəsinə işarə edən bonus ad sahəsini açıq şəkildə elan etməliyik, çünki elementFormDefault uyğundur (yoxlayın), ona görə də bütün elementlər öz boşluğunu açıq şəkildə göstərməlidir.

Məqalənin sonu

Növbəti məqalə seriyanın sonuncusu olacaq və artıq Java-dan istifadə edərək XML fayllarının işlənməsi haqqında olacaq. Biz müxtəlif yollarla məlumat əldə etməyi öyrənəcəyik və s. Ümid edirəm ki, bu məqalə faydalı oldu və burada haradasa səhvlər olsa belə, sizə faydalı və yeni bir şey öyrədəcək və ya bəlkə də XML fayllarını daha yaxşı başa düşmək imkanı verəcəkdir. Bunu daha ətraflı araşdırmaq istəyənlər üçün kiçik bir sıra bağlantılar toplamağa qərar verdim:
  • XSD Simple Elements - bu məqalədən oxumağa başlayın və irəliləyin, sxemlər üzrə bütün məlumatlar orada toplanır və az-çox aydın şəkildə, yalnız ingilis dilində izah olunur. Tərcüməçidən istifadə edə bilərsiniz.

  • ad boşluqlarında video, əgər birincisi aydın deyilsə, hər hansı bir şeyə başqa nöqteyi-nəzərdən qulaq asmaq həmişə faydalıdır.

  • Ad məkanı XML ad boşluqlarının istifadəsinə yaxşı bir nümunədir və kifayət qədər əhatəlidir.

  • XML Basics - Namespaces - Ad boşluqları haqqında başqa bir qısa məqalə.

  • Elementləri Müəyyən etmək üçün XML Sxemindən İstifadə Edilməsinin Əsasları həm də sxemlərə dair son dərəcə faydalı bir istinaddır, lakin siz onu yavaş-yavaş və diqqətlə oxumalı, materialı araşdırmalısınız.

Bütün bunlar əmindir, ümid edirəm ki, bundan daha dərin bir şey öyrənmək istəyirsinizsə, bağlantılar sizə kömək edəcəkdir. Mən bütün bu mənbələri özüm nəzərdən keçirdim, bütün materialları öyrəndim və ümumilikdə baxdığım bütün mənbələrdən ən faydalısı bunlar idi, çünki onların hər biri ya başqa yerdə oxuduqlarımın daha yaxşı başa düşülməsini təmin etdi, ya da yeni bir şey öyrənməyə icazə verin, ancaq təcrübə zamanı çox şey edildi. Beləliklə, bütün bunları həqiqətən yaxşı başa düşmək istəyənlər üçün məsləhətim budur: ad boşluqlarını öyrənin, sonra sxemləri XML fayllarına necə asanlıqla qoşmalı və sonra sənəd strukturunu sxemlərdə necə yazmalısınız. Və ən əsası, məşq edin. Diqqətinizə görə hamınıza təşəkkür edirik və proqramlaşdırmada uğurlar :) Əvvəlki məqalə: [Müsabiqə] Java Proqramçısı üçün XML Əsasları - 3-cü hissədən 1-ci hissə Növbəti məqalə: [Müsabiqə] Java Proqramçısı üçün XML Əsasları - 3-cü hissədən 3.1 - SAX
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION