JavaRush /Java Blog /Random-TK /Java programmisti üçin XML esaslary. 3-nji bölüm
Ярослав
Dereje
Днепр

Java programmisti üçin XML esaslary. 3-nji bölüm

Toparda çap edildi

Giriş

Salam, makalamyň gadyrly okyjylary. Bu, XML hakda tapgyryň ikinji makalasy we bu makalada XML At giňişligi we XML shemasy barada söhbet ediler.
XML esaslary
Justaňy-ýakynda özüm bu hakda hiç zat bilmeýärdim, ýöne köp material özleşdirdim we bu iki möhüm temany ýönekeý sözler bilen düşündirmäge synanyşaryn. Derrew shemalaryň XML resminamalaryny barlamak üçin iň ösen mehanizmdigini we DTD-lerden has köp işleýändigini aýtmak isleýärin, şonuň üçin bu ýerde doly öwrenilmez. Başlalyň :)

XML At giňişligi

At giňişligi “at giňişligi” diýmegi aňladýar, ýöne bu makalada köplenç rus sözüni diňe at giňişligi bilen çalyşaryn, sebäbi has gysga we düşünmek has aňsat. XML At giňişligi, esasy maksady ähli elementleriň XML faýlynda özboluşlydygyna we bulaşyklygyň ýokdugyna göz ýetirmekdir. Bular Java kurslary bolansoň, şol bir tehnologiýa Java paketlerinde-de bar. Birmeňzeş at bilen iki synpy biri-biriniň gapdalynda goýup, ulanyp bilsek, haýsy klasa mätäçligimizi nädip kesgitlärdik? Bu mesele paketler bilen çözülýär - biz dürli paketlere sapaklary ýerleşdirip, şol ýerden import edip bileris, islenýän paketiň takyk adyny we oňa barýan ýoly görkezip bileris ýa-da islenýän synpyň doly ýoluny kesgitläp bileris. Java programmisti üçin XML esaslary.  3-nji bölümiň 2-nji bölümiIndi muny edip bileris:
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 At giňişliginde hemme zat birmeňzeş, azajyk üýtgeşik. Mazmuny birmeňzeş: elementler birmeňzeş bolsa (synplar ýaly), onda olary diňe dürli at giňişliklerinde ulanmaly bolarys (paketleri görkeziň), elementleriň (synplaryň) atlary gabat gelip başlasa-da, dowam ederis giňişlikden (paketden) belli bir elemente giriň. Mysal üçin: XML-de iki elementimiz bar - çaklama (oracle) we Oracle maglumatlar bazasy.
<?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>
Bu XML faýly gaýtadan işlesek, maglumatlar bazasynyň ýerine bir çaklama alsak we yzyna gaýdyp gelsek, gaty aljyraňňy bolarys. Elementleriň çaknyşmagyny çözmek üçin olaryň hersini biri-birinden tapawutlandyrmak üçin öz ýerini bölüp bileris. Munuň üçin aýratyn bir aýratynlyk bar - xmlns: prefiks = “at giňişligi üçin üýtgeşik baha”. Soňra şol at giňişliginiň bir bölegidigini görkezmek üçin elementleri prefiks edip bileris (esasanam, paket ýoluny - at giňişligini döretmeli we soňra haýsy bukja degişlidigini her elementi prefiks edip bileris).
<?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 mysalda iki at giňişligini yglan etdik: maglumatlar bazasy we oracle. Indi elementleriň öňünden at giňişliginiň prefikslerini ulanyp bilersiňiz. Häzir bir zat düşnüksiz bolsa gorkmagyň hajaty ýok. Aslynda bu gaty ýönekeý. Ilki bilen makalanyň bu bölegini has çalt ýazmak isledim, ýöne çarşenbe gününden soň bu mowzuga has köp üns bermelidigime karar berdim, sebäbi bulaşdyrmak ýa-da bir zada düşünmek aňsat. Indi xmlns atributyna köp üns berler. Şeýlelik bilen, başga bir mysal:
<?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>
Gunarag dükanynyň özboluşly elementleri we balykçylyk dükanynyň özboluşly elementleri üçin boşluk ýaragyny ulanyp, adaty XML-i görüp bilersiňiz. Boş ýerleri döretmek bilen birbada iki dürli zat - ýarag dükany we balyk dükany üçin bir dükan elementini ulanandygymyzy görüp bilersiňiz, boşluklary yglan edendigimiz sebäpli onuň haýsy dükanyň bardygyny anyk bilýäris. Iň gyzykly zat, shemalarda başlar, haçan-da şol bir elementler bilen dürli gurluşlary tassyklap bileris. xmlns at giňişligini yglan etmek üçin bir häsiýet, ony islendik elementde görkezip bolýar. At giňişliginiň deklarasiýasynyň mysaly:
xmlns:shop= «https://barber-shop.com/»
Içegäniň prefiksi bolansoň - bu giňişlik salgylanmasy bolup, elementleriň öňünden şol giňişlikden gelendigini görkezmek üçin ulanylyp bilner. Xmlns bahasy UNIQUE STRING bolmaly. Muňa düşünmek gaty möhümdir: at giňişligini yglan etmek üçin web sahypa baglanyşyklaryny ýa-da URI-leri ulanmak gaty adaty zat. Bu düzgün adaty, sebäbi baglanyşygyň URI ýa-da URL-si özboluşly, UTöne bu ýerde gaty bulaşyk bolýar. Diňe ýadyňyzdan çykarmaň: bahasy islän HER setir bolup biler, ýöne üýtgeşik we standartdygyna göz ýetirmek üçin URL ýa-da URI ulanmaly. Islendik setiri ulanyp biljekdigiňiz, mysalda oracle-da görkezilýär:
xmlns:oracle="Unique ID #2"
xmlns:database="Unique ID #1"
At giňişligini yglan edeniňizde, ony elementiň özünde we içindäki ähli elementlerde ulanyp bilersiňiz, şonuň üçin kök elementinde yglan edilen at giňişlikleri ähli elementlerde ulanylyp bilner. Muny soňky mysalda görmek bolýar we has anyk mysal:
<?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>
Ine möhüm bir jikme-jiklik: kök elementinde adaty at giňişligi hem bar. Beýleki at giňişliklerini yglan etseňiz, deslapky adyny ýok edýärsiňiz we ulanyp bilmersiňiz. Soňra kök elementiň öňünde öň yglan eden haýsydyr bir giňişlik prefiksini goýmaly. Muňa garamazdan, muny hem aldap bolar: adaty giňişligi aç-açan yglan edip bilersiňiz. Diňe xmlns-dan soň prefiksi ulanmak däl-de, derrew haýsydyr bir bahany ýazmak ýeterlikdir, prefiksi bolmadyk ähli elementleriňiz bu belli at giňişligine degişlidir. Iň soňky mysal muny ulandy:
<root xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.fish-shop.com/">
Gunarag ýa-da balyk ulanmak zerurlygyndan gaça durmak üçin adaty giňişligi aç-açan yglan etdik, sebäbi kök elementi balykçy dükany ýa-da ýarag däl, şonuň üçin bu ýerden peýdalanmak logiki taýdan nädogry bolar. Indiki: eger xmlns: a we xmlns: b döreden bolsaňyz, ýöne olaryň bahasy birmeňzeş bolsa, bu şol bir giňişlik we üýtgeşik däl. Şonuň üçin elmydama üýtgeşik gymmatlyklary ulanmalysyňyz, sebäbi bu düzgüni bozmak köp sanly ýalňyşlyk döredip biler. Mysal üçin, şular ýaly yglan edilen boşluklarymyz bar bolsa:
xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.gun-shop.com/"
Şonda balykçylyk dükanymyz ýarag dükanyna öwrülerdi we prefiksi henizem balyk dükany bolar. Bularyň hemmesi boşluklaryň esasy nokatlary. Olaryň hemmesini ýygnamak we azaltmak üçin ep-esli wagt sarp etdim, soň bolsa aç-açan beýan etdim, sebäbi internetdäki boş ýerler baradaky maglumatlar gaty uludyr we köplenç diňe suw bolýar, şonuň üçin bu ýerdäki zatlaryň köpüsi - synag arkaly özüm öwrendim we ýalňyşlyk. Soraglaryňyz bar bolsa, makalanyň soňundaky baglanyşyklary ulanyp, materiallary okamaga synanyşyp bilersiňiz.

XML shema

Derrew aýdasym gelýär, bu makala diňe buzuň ujy bolar, sebäbi mowzuk gaty giň. Shemalar bilen has jikme-jik tanyşmak we olary islendik çylşyrymlylykda özüňiz ýazmagy öwrenmek isleseňiz, makalanyň ahyrynda hemme zadyň dürli görnüşler, çäklendirmeler, giňeltmeler we ş.m. boljak baglanyşygy bolar. Nazaryýetden başlamak isleýärin. Shemalar .xsd (xml shema kesgitlemesi) formatyna eýedir we DTD-lere has ösen we meşhur alternatiwadyr: elementleri döredip, suratlandyryp we ş.m. Şeýle-de bolsa, köp mukdarda bonus goşuldy: görnüşi barlamak, at giňişligini goldamak we has giňişleýin işlemek. DTD hakda gürleşenimizde ýadyňyzdamy, boş ýerleri goldamaýan minus barmy? Indi muny öwrenenimizden soň düşündirerin: birmeňzeş elementler bolan DTD-den iki ýa-da has köp shema import edip bolýan bolsa, çaknyşardyk (tötänlikler) we asla ulanyp bilmeris, sebäbi haýsy elementiň gerekdigi belli däl. XSD bu meseläni çözýär, sebäbi shemalary belli bir giňişlige import edip we ulanyp bilersiňiz. Aslynda, her XSD shemanyň maksatly giňişligi bar, bu shemanyň XML faýlynda haýsy giňişlikde ýazylmalydygyny aňladýar. Şeýlelik bilen, XML faýlynyň özünde diňe shemalarda öňünden kesgitlenen bu boşluklary döretmeli we olara prefiksleri bellemeli, soňra zerur shemalary olaryň hersine birikdirmeli, şondan soň shemanyň elementlerini ygtybarly ulanyp, prefiksleri çalşyp bileris; shematikany import eden ýerimiz. Şeýlelikde, bize mysal bar:
<?xml version="1.0" encoding="UTF-8"?>
<house>
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</house>
Shema bilen tassyklamak isleýäris. Ilki bilen shema gerek:
<?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örşüňiz ýaly shemalar XML faýllarydyr. Gerek zatlaryňyzy göni XML-de ýazýarsyňyz. Bu shema ýokardaky mysaldan XML faýlyny barlamaga ukyply. Mysal üçin: eýesiniň ady ýok bolsa, zynjyr muny görer. Mundan başga-da, yzygiderlilik elementiniň kömegi bilen salgy hemişe ilki, soň bolsa jaýyň eýesi bolmaly. Adaty we çylşyrymly elementler bar. Adaty elementler diňe maglumatlaryň käbir görnüşini saklaýan elementlerdir. Mysal:
<element name="telephone" type="string" />
Ine, setiri saklaýan elementi şeýle yglan edýäris. Bu elementiň içinde başga elementler bolmaly däldir. Şeýle hem çylşyrymly elementler bar. Çylşyrymly elementler beýleki elementleri we häsiýetleri öz içinde saklamaga ukyplydyr. Soňra görnüşini görkezmek hökman däl, diňe elementiň içinde çylşyrymly görnüş ýazyp başlaň.
<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>
Şeýle hem başgaça edilip bilner: çylşyrymly görnüşi aýratyn döredip, soň bolsa ýerine çalyşyp bilersiňiz. Diňe şu mysal ýazylanda, nämüçindir boşlugy haýsydyr bir prefiks astynda yglan etmeli we adaty birini ulanmaly däldi. Umuman aýdylanda, şeýle boldy:
<?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>
Şeýlelik bilen, öz görnüşlerimizi aýratyn döredip, soňra görnüş atributynyň bir ýerinde çalşyp bileris. Bu gaty amatly, sebäbi dürli ýerlerde bir görnüşi ulanmaga mümkinçilik berýär. Zynjyrlary birikdirmek barada has köp gürleşmek we şu ýerde tamamlamak isleýärin. Zynjyry birikdirmegiň iki ýoly bar: belli bir giňişlige we diňe birikmek.

Zynjyry birikdirmegiň ilkinji usuly

Birinji usul, zynjyryň belli bir maksat meýdanynyň bardygyny göz öňünde tutýar. Sxema elementindäki maksatNamespace atributyny ulanyp kesgitlenýär. Soňra XML faýlynda BU SÖ spaceGI ýer döretmek, soňra bolsa shemany “ýüklemek” ýeterlikdir:
<?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>
Iki setire düşünmek möhümdir:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemeLocation="https://www.nedvigimost.com/ example_schema1.xsd"
Birinji setir - diňe ýadyňyzda saklaň. Nirä gitmelidigini shematikany ýüklemäge kömek edýän obýekt hökmünde pikir ediň. Ikinji setir belli bir göçürip almak. schemaLocation, boşluk bilen bölünen "baha - baha" görnüşiniň bahalarynyň sanawyny kabul edýär. Birinji argument, shemadaky maksat at giňişligine (maksatNamespace gymmaty) laýyk gelýän at giňişligi. Ikinji argument, shema degişlilikde ýa-da mutlak ýol. Bu sanaw sanawy bolany üçin, mysalda shemadan soň boşluk goýup bilersiňiz, ýene-de maksat meýdanyna we başga bir shemanyň adyny we ş.m. girip bilersiňiz. Üns beriň:Shemanyň soň bir zady tassyklamagy üçin bu boşlugy yglan etmeli we prefiks bilen ulanmaly. Iň soňky mysala üns bilen serediň:
<?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>
Bu maksatly giňişligi nedvig prefiksinde döretdik we soň ulandyk. Şeýlelik bilen, maksatly shema giňişliginiň salgylanylýan ýerini ulanyp başlanymyzdan, elementlerimiz tassyklanyp başlandy.

Zynjyry birikdirmegiň ikinji usuly

Zynjyry birikdirmegiň ikinji usuly, zynjyryň belli bir maksat meýdanynyň ýokdugyny aňladýar. Soňra ony diňe XML faýlyna birikdirip bilersiňiz we ol tassyklanar. Bu edil şonuň ýaly ýerine ýetirilýär, diňe XML faýlynda boş ýerleri yglan edip bilmersiňiz, diňe shemany birikdirip bilersiňiz.
<?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örşüňiz ýaly, bu noNamespaceSchemaLocation ulanyp we shemanyň ýoluny kesgitlemek arkaly edilýär. Shemanyň maksatly ýeri bolmasa-da, resminama tassyklanar. Iň soňky degishme: beýleki diagrammalary diagrammalara import edip bileris, soňra bolsa bir diagrammadan beýleki diagrammalary ulanyp bileris. Şeýlelik bilen, käbir zynjyrlarda eýýäm beýlekilerdäki elementleri ulanyp bileris. Mysal:

Eýesiniň görnüşiniň yglan edilen shemasy:

<?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>

Birinji shemadan eýesiniň görnüşini ulanýan ikinji shema:

<?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>
Ikinji shema aşakdaky gurluşygy ulanýar:
<import namespace="bonus" schemaLocation="xsd2.xsd" />
Ony ulanyp, bonus shemasyna görnüşleri we elementleri bir shemadan beýlekisine import etdik. Şeýlelik bilen, bonus: eýesiniň görnüşi bar. Indiki setirde bolsa ulandyk:
<element name="owner" type="bonus:owner" />
Aşakdaky setire azajyk üns beriň:
elementFormDefault="qualified"
Bu atribut shemada yglan edilýär we XML faýllarynda her elementiň öňünden aç-açan prefiksi bilen yglan edilmelidigini aňladýar. Eger ol ýerde ýok bolsa, onda diňe bir prefiks bilen daşarky elementi yglan etmeli we bu shemanyň elementlerini takyk ulanýandygymyzy aç-açan görkezýän içindäki ähli elementlerde prefiksleri bellemeli. Aslynda, bu ýerde başga bir shema import eden shema bilen tassyklanan XML faýlynyň mysaly:
<?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>
Setirde:
<bonus:telephone>+38-094-521-77-35</bonus:telephone>
Ilkinji shemanyň maksat meýdanyny görkezýän bonus at giňişligini aç-açan yglan etmeli, sebäbi elementFormDefault hünärli (barlaň), şonuň üçin ähli elementler öz giňişligini aç-açan görkezmeli.

Makalanyň soňy

Indiki makala seriýadaky iň soňky bolar we eýýäm Java ulanyp XML faýllaryny gaýtadan işlemek barada bolar. Maglumatlary dürli usullar bilen öwrenmegi öwreneris we ş.m. Bu makala peýdaly boldy we bu ýerde bir ýerde ýalňyşlyklar bar bolsa-da, size peýdaly we täze bir zat öwreder ýa-da diňe XML faýllaryna has gowy düşünmäge mümkinçilik berer diýip umyt edýärin. Muny has jikme-jik öwrenmek isleýänler üçin kiçi baglanyşyklar toplumyny jemlemegi makul bildim: Elbetde, bu zatlardan has çuňňur bir zat öwrenmek isleseňiz, baglanyşyklar size kömek eder diýip umyt edýärin. Bu çeşmeleriň hemmesini özüm gözledim, ähli materiallary öwrendim we umuman aýdanymda, sereden çeşmelerimiň arasynda iň peýdalysydy, sebäbi olaryň hersi ýa-da başga bir ýerde okan zatlarymy düşünmegi gowulaşdyrdy ýa-da täze bir zat öwrenmäge rugsat ediň, ýöne köp zat diňe tejribe wagtynda edildi. Şeýlelik bilen, bularyň hemmesine hakykatdanam gowy düşünmek isleýänler üçin meniň maslahatym: at giňişliklerini öwrenmek, shemalary XML faýllaryna nädip birikdirip boljakdygyny we resminamalaryň gurluşyny shemalarda nädip ýazmalydygyny öwrenmek. Iň esasy zat bolsa amal ediň. Üns berenligiňiz we programmirlemekde üstünlik arzuw edeniňiz üçin hemmäňize sag bolsun aýdýaryn :) Öňki makala: [Bäsdeşlik] Java programmisti üçin XML esaslary - 3-nji bölümiň 1-nji bölümi Indiki makala: [Bäsdeşlik] Java programmisti üçin XML esaslary - 3-nji bölüm - SAX
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION