JavaRush /Blog Jawa /Random-JV /Dasar XML kanggo Programmer Java - Bagean 1 saka 3
Ярослав
tingkat
Днепр

Dasar XML kanggo Programmer Java - Bagean 1 saka 3

Diterbitake ing grup
XML minangka format sing populer lan fleksibel saiki. Saben programmer kudu ngerti, iku mung kudu duwe. Akeh teknologi saiki aktif nggunakake, lan modern ana ing antarane.
Dasar XML kanggo Programmer Java - Part 1 saka 3 - 1

Pambuka

Halo, para pembaca artikelku. Aku arep langsung ngomong yen iki mung artikel pisanan ing seri saka telung artikel. Sasaran utama saka kabeh seri iku kanggo miwiti saben maca menyang XML lan menehi, yen ora panjelasan lengkap lan pangerten, banjur paling apik push menyang iku, njlentrehke TCTerms utama lan bab. Siklus kabeh bakal kanggo siji nominasi - "Wigati kanggo rincian" , lan divisi dadi 3 artikel digawe supaya pas karo watesan karakter ing kiriman lan dibagi jumlah gedhe saka materi menyang bagean cilik kanggo pemahaman luwih. Artikel pisanan bakal dikhususake kanggo XML dhewe lan apa iku, uga minangka salah sawijining cara kanggo nggawe skema kanggo file XML - DTD. Kanggo miwiti, aku pengin nggawe pambuka cilik kanggo wong sing durung ngerti XML: ora perlu wedi. XML ora rumit banget lan kudu dimangerteni dening programer apa wae, amarga format file sing fleksibel, efisien lan populer saiki kanggo nyimpen macem-macem informasi sing dikarepake. XML digunakake ing Ant, Maven, Spring. Sembarang programmer mbutuhake kawruh XML. Saiki wis ngumpulake kekuwatan lan motivasi, ayo padha sinau. Aku bakal nyoba kanggo lay metu kabeh materi sabisa, ngumpulake mung sing paling penting lan ora arep menyang suket.

XML

Kanggo panjelasan sing luwih jelas, luwih becik nggambarake XML kanthi conto.
<?xml version="1.0" encoding="UTF-8"?>
<company>
    <name>IT-Heaven</name>
    <offices>
        <office floor="1" room="1">
            <employees>
                <employee>
                    <name>Maksim</name>
                    <job>Middle Software Developer</job>
                </employee>
                <employee>
                    <name>Ivan</name>
                    <job>Junior Software Developer</job>
                </employee>
                <employee>
                    <name>Franklin</name>
                    <job>Junior Software Developer</job>
                </employee>
            </employees>
        </office>
        <office floor="1" room="2">
            <employees>
                <employee>
                    <name>Herald</name>
                    <job>Middle Software Developer</job>
                </employee>
                <employee>
                    <name>Adam</name>
                    <job>Middle Software Developer</job>
                </employee>
                <employee>
                    <name>Leroy</name>
                    <job>Junior Software Developer</job>
                </employee>
            </employees>
        </office>
    </offices>
</company>
HTML lan XML padha ing sintaks amarga padha duwe induk umum - SGML. Nanging, ing HTML mung ana tag tetep saka standar tartamtu, nalika ing XML sampeyan bisa nggawe tag dhewe, atribut lan, ing umum, nindakake apa wae sing sampeyan pengin nyimpen data kanthi cara sing cocog karo sampeyan. Nyatane, file XML bisa diwaca dening sapa wae sing ngerti basa Inggris. Conto iki bisa digambarake nggunakake wit. Dasar XML kanggo Programmer Java - Part 1 saka 3 - 2Oyod wit iku Perusahaan. Iki uga minangka unsur oyot (root) sing asale saka kabeh unsur liyane. Saben file XML mung bisa duwe siji unsur root. Iki kudu diumumake sawise deklarasi file xml (baris pisanan ing conto) lan ngemot kabeh unsur liyane. Sedhela babagan deklarasi: wajib lan dibutuhake kanggo ngenali dokumen kasebut minangka XML. Nduwe telung atribut pseudo (atribut khusus sing wis ditemtokake): versi (miturut standar 1.0), enkoding (enkoding) lan mandiri (otonomi: yen ya lan skema eksternal disambungake menyang dokumen, mula bakal ana kesalahan, standar ora). Unsur minangka entitas sing nyimpen data nggunakake unsur lan atribut liyane. Atribut minangka informasi tambahan babagan unsur sing ditemtokake nalika nambahake unsur. Yen nerjemahake panjelasan menyang lapangan OOP, kita bisa menehi conto ing ngisor iki: kita duwe mobil, saben mobil duwe ciri (werna, kapasitas, merek, lsp) - iki minangka atribut, lan ana entitas sing ana ing njero mobil. : lawang, jendhela, mesin , setir unsur liyane. Sampeyan bisa nyimpen properti minangka unsur individu utawa minangka atribut, gumantung saka kepinginan sampeyan. Sawise kabeh, XML minangka format sing fleksibel banget kanggo nyimpen informasi babagan apa wae. Sawise panjelasan, kita mung kudu ndeleng conto ing ndhuwur supaya kabeh bisa kedadeyan. Ing conto, kita nerangake struktur perusahaan sing prasaja: ana perusahaan sing duwe jeneng lan kantor, lan ing kantor ana karyawan. Elemen Karyawan lan Kantor minangka unsur pambungkus - padha digunakake kanggo ngumpulake unsur saka jinis sing padha, ateges nggabungake dadi siji set supaya gampang diproses. Lantai lan kamar kudu diwenehi perhatian khusus. Iki minangka atribut kantor (lantai lan nomer), kanthi tembung liya, sifate. Yen kita duwe unsur "gambar", kita bisa nransfer dimensi kasebut. Sampeyan bisa uga sok dong mirsani manawa perusahaan ora duwe atribut jeneng, nanging duwe unsur jeneng. Sampeyan mung bisa njlèntrèhaké struktur kaya sing dikarepake. Ora ana sing ngwajibake sampeyan nulis kabeh sifat unsur mung ing atribut; sampeyan mung bisa nggunakake unsur lan nulis sawetara data ing njero. Contone, kita bisa ngrekam jeneng lan posisi karyawan minangka atribut:
<?xml version="1.0" encoding="UTF-8"?>
<company>
    <name>IT-Heaven</name>
    <offices>
        <office floor="1" room="1">
            <employees>
                <employee name="Maksim" job="Middle Software Developer">

                </employee>
                <employee name="Ivan" job="Junior Software Developer">

                </employee>
                <employee name="Franklin" job="Junior Software Developer">

                </employee>
            </employees>
        </office>
        <office floor="1" room="2">
            <employees>
                <employee name="Herald" job="Middle Software Developer">

                </employee>
                <employee name="Adam" job="Middle Software Developer">

                </employee>
                <employee name="Leroy" job="Junior Software Developer">

                </employee>
            </employees>
        </office>
    </offices>
</company>
Kaya sing sampeyan ngerteni, saiki jeneng lan jabatan saben karyawan minangka atribute. Lan sampeyan bisa sok dong mirsani sing ora ana ing entitas karyawan (tag), kabeh unsur karyawan kosong. Banjur sampeyan bisa nggawe karyawan minangka unsur kosong - nutup langsung sawise ngumumake atribut kasebut. Iki rampung kanthi gampang, mung nambah garis miring:
<?xml version="1.0" encoding="UTF-8"?>
<company>
    <name>IT-Heaven</name>
    <offices>
        <office floor="1" room="1">
            <employees>
                <employee name="Maksim" job="Middle Software Developer" />
                <employee name="Ivan" job="Junior Software Developer" />
                <employee name="Franklin" job="Junior Software Developer" />
            </employees>
        </office>
        <office floor="1" room="2">
            <employees>
                <employee name="Herald" job="Middle Software Developer" />
                <employee name="Adam" job="Middle Software Developer" />
                <employee name="Leroy" job="Junior Software Developer" />
            </employees>
        </office>
    </offices>
</company>
Kaya sing sampeyan ngerteni, kanthi nutup unsur kosong, kita njaga kabeh integritas informasi lan nyepetake rekaman kasebut, nggawe informasi luwih ringkes lan bisa diwaca. Kanggo nambah komentar (teks sing bakal dilewati nalika ngurai file) ing XML, ana sintaks ing ngisor iki:
<!-- Ivan недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка.-->
Lan konstruksi pungkasan yaiku CDATA , sing tegese "data karakter". Thanks kanggo desain iki, sampeyan bisa nulis teks sing ora bakal diinterpretasikake minangka markup XML. Iki migunani yen sampeyan duwe entitas ing file XML sing nyimpen markup XML ing informasi kasebut. Tuladha:
<?xml version="1.0" encoding="UTF-8" ?>
<bean>
    <information>
        <![CDATA[<name>Ivan</name><age>26</age>]]>
    </information>
</bean>
Babagan XML yaiku sampeyan bisa nggedhekake apa wae sing dikarepake: gunakake unsur sampeyan dhewe, atribut sampeyan dhewe, lan struktur kaya sing dikarepake. Sampeyan bisa nggunakake atribut lan unsur kanggo nyimpen data (kaya sing dituduhake ing conto sadurunge). Nanging, sampeyan kudu ngerti manawa sampeyan bisa nggawe unsur lan atribut dhewe kanthi cepet lan sampeyan pengin, nanging apa yen sampeyan nggarap proyek ing ngendi programmer liyane pengin mindhah unsur jeneng menyang atribut, lan kabeh logika program sampeyan. ditulis supaya jeneng minangka unsur? Kepiye carane nggawe aturan dhewe babagan unsur apa sing kudu ana, atribut apa sing diduweni, lan liya-liyane, supaya sampeyan bisa ngesyahke file XML lan manawa aturan kasebut bakal dadi standar ing proyek sampeyan lan ora ana sing bakal nglanggar? Kanggo nulis kabeh aturan markup XML sampeyan dhewe, ana alat khusus. Sing paling misuwur: DTD lan Skema XML. Artikel iki mung bakal ngomong bab pisanan.

DTD

DTD digawe kanggo njlèntrèhaké jinis dokumen. DTD wis dadi lungse lan saiki lagi aktif ditinggalake ing XML, nanging isih akeh file XML sing nggunakake DTD lan, ing umum, migunani kanggo mangerteni. DTD minangka teknologi kanggo validasi dokumen XML . DTD nyatakake aturan tartamtu kanggo jinis dokumen: unsur, unsur apa sing bisa ana ing njero unsur, atribut, apa sing dibutuhake utawa ora, jumlah repetisi, uga Entitas. Kaya XML, DTD bisa digambarake kanthi conto kanggo panjelasan sing luwih jelas.
<!-- Объявление возможных элементов -->
<!ELEMENT employee EMPTY>
<!ELEMENT employees (employee+)>
<!ELEMENT office (employees)>
<!ELEMENT offices (office+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (name, offices)>

<!-- Добавление атрибутов для элементов employee и office -->
<!ATTLIST employee
        name CDATA #REQUIRED
        job  CDATA #REQUIRED
>

<!ATTLIST office
        floor CDATA #REQUIRED
        room  CDATA #REQUIRED
>

<!-- Добавление сущностей -->
<!ENTITY M "Maksim">
<!ENTITY I "Ivan">
<!ENTITY F "Franklin">
Ing kene kita duwe conto sing prasaja. Ing conto iki, kita ngumumake kabeh hierarki saka conto XML: karyawan, karyawan, kantor, kantor, jeneng, perusahaan. Kanggo nggawe file DTD, ana 3 konstruksi utama sing digunakake kanggo njlèntrèhaké file XML: ELEMENT (kanggo njlèntrèhaké unsur), ATTLIST (kanggo njlèntrèhaké atribut kanggo unsur) lan ENTITY (kanggo ngganti teks karo formulir sing disingkat). ELEMEN Digunakake kanggo njlentrehake unsur. Unsur-unsur sing bisa digunakake ing unsur sing diterangake kadhaptar ing kurung ing wangun dhaptar. Sampeyan bisa nggunakake quantifiers kanggo nunjukaké jumlah (padha padha karo quantifiers saka ekspresi reguler): +tegese 1+ *tegese 0+ ?UTAWA 0Yen 1 ora ana quantifiers ditambahake, banjur dianggep mung ana 1 unsur. Yen kita butuh salah siji saka klompok unsur, kita bisa nulis kaya iki:
<!ELEMENT company ((name | offices))>
Banjur salah sawijining unsur bakal dipilih: jeneng utawa kantor, nanging yen ana loro ing njero perusahaan, validasi ora bakal lulus. Sampeyan uga bisa sok dong mirsani yen ing karyawan ana tembung KOSONG - iki tegese unsur kudu kosong. Ana uga ANY - unsur apa wae. #PCDATA – data teks. ATTLIST Digunakake kanggo nambah atribut menyang unsur. Sawise ATTLIST nderek jeneng unsur sing dikarepake, lan sawise iku kamus saka wangun "jeneng atribut - jinis atribut", lan ing pungkasan sampeyan bisa nambah #IMPLIED (opsional) utawa #REQUIRED (dibutuhake). CDATA – data teks. Ana jinis liyane, nanging kabeh huruf cilik. ENTITY ENTITY digunakake kanggo ngumumake singkatan lan teks sing bakal diselehake ing. Ing kasunyatan, kita mung bakal bisa digunakake ing XML, tinimbang teks lengkap, mung jeneng entitas karo & tandha sadurunge lan ; sawise. Contone: kanggo mbedakake antarane markup HTML lan mung karakter, krenjang sudhut kiwa asring oncat karo lt; , sampeyan mung kudu sijine & sadurunge lt. Banjur kita ora bakal nggunakake markup, nanging mung <simbol. Kaya sing sampeyan ngerteni, kabeh cukup prasaja: sampeyan ngumumake unsur, nerangake unsur apa sing bisa diisi unsur sing diumumake, nambah atribut menyang unsur kasebut lan, yen pengin, sampeyan bisa nambah entitas kanggo nyepetake sawetara entri. Lan ing kene sampeyan kudu takon: kepiye cara nggunakake aturan ing file XML? Sawise kabeh, kita mung ngumumake aturan kasebut, nanging ora digunakake ing XML. Ana rong cara kanggo nggunakake ing XML: 1. Embedding - nulis aturan DTD nang file XML dhewe, mung nulis unsur ROOT sawise DOCTYPE tembung kunci lan lampiraké file DTD kita ing kurung kothak.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE company [
        <!-- Объявление возможных элементов -->
        <!ELEMENT employee EMPTY>
        <!ELEMENT employees (employee+)>
        <!ELEMENT office (employees)>
        <!ELEMENT offices (office+)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT company (name, offices)>

        <!-- Добавление атрибутов для элементов employee и office -->
        <!ATTLIST employee
        name CDATA #REQUIRED
        job  CDATA #REQUIRED
        >

        <!ATTLIST office
        floor CDATA #REQUIRED
        room  CDATA #REQUIRED
        >

        <!-- Добавление сущностей -->
        <!ENTITY M "Maksim">
        <!ENTITY I "Ivan">
        <!ENTITY F "Franklin">
]>

<company>
    <name>IT-Heaven</name>
    <!-- Ivan недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка.-->
    <offices>
        <office floor="1" room="1">
            <employees>
                <employee name="&M;" job="Middle Software Developer" />
                <employee name="&I;" job="Junior Software Developer" />
                <employee name="&F;" job="Junior Software Developer" />
            </employees>
        </office>
        <office floor="1" room="2">
            <employees>
                <employee name="Herald" job="Middle Software Developer" />
                <employee name="Adam" job="Middle Software Developer" />
                <employee name="Leroy" job="Junior Software Developer" />
            </employees>
        </office>
    </offices>
</company>
2. Impor - kita nulis kabeh aturan ing file DTD sing kapisah, sawise ing file XML kita nggunakake konstruksi DOCTYPE saka cara pisanan, mung tinimbang kurung kothak sampeyan kudu nulis SISTEM lan nemtokake path absolut utawa relatif menyang lokasi file saiki.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE company SYSTEM "dtd_example1.dtd">

<company>
    <name>IT-Heaven</name>
    <!-- Ivan недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка.-->
    <offices>
        <office floor="1" room="1">
            <employees>
                <employee name="&M;" job="Middle Software Developer" />
                <employee name="&I;" job="Junior Software Developer" />
                <employee name="&F;" job="Junior Software Developer" />
            </employees>
        </office>
        <office floor="1" room="2">
            <employees>
                <employee name="Herald" job="Middle Software Developer" />
                <employee name="Adam" job="Middle Software Developer" />
                <employee name="Leroy" job="Junior Software Developer" />
            </employees>
        </office>
    </offices>
</company>
Sampeyan uga bisa nggunakake tembung kunci PUBLIC tinimbang SISTEM, nanging ora bisa migunani kanggo sampeyan. Yen sampeyan kasengsem, sampeyan bisa maca babagan (lan babagan SISTEM uga) kanthi rinci ing kene: link . Saiki kita ora bisa nggunakake unsur liyane tanpa wara-wara ing DTD, lan kabeh XML tundhuk aturan kita. Sampeyan bisa nyoba nulis kode iki ing IntelliJ IDEA ing file kapisah karo extension .xml lan nyoba nambah sawetara unsur anyar utawa mbusak unsur saka DTD lan sok dong mirsani carane IDE bakal nuduhake kesalahan kanggo sampeyan. Nanging, DTD nduweni kekurangan:
  • Wis sintaks dhewe, beda karo sintaks xml.
  • DTD ora duwe pamriksa jinis data lan mung bisa ngemot senar.
  • Ora ana papan jeneng ing DTD.
Babagan masalah sintaksis sampeyan dhewe: sampeyan kudu ngerti rong sintaksis bebarengan: sintaksis XML lan DTD. Padha beda lan iki bisa nggawe sampeyan bingung. Kajaba iku, amarga iki, luwih angel nglacak kesalahan ing file XML gedhe bebarengan karo skema DTD sing padha. Yen ana sing ora bisa digunakake kanggo sampeyan, sampeyan kudu mriksa akeh teks kanthi sintaksis sing beda. Kaya maca rong buku ing wektu sing padha: ing basa Rusia lan Inggris. Lan yen kawruh babagan basa siji luwih elek, mula ngerti teks kasebut bakal angel banget. Babagan masalah mriksa jinis data: atribut ing DTDs duwe macem-macem jinis, nanging kabeh, ing inti, perwakilan senar saka sesuatu, dhaptar utawa pranala. Nanging, sampeyan ora bisa nuntut mung nomer, lan utamané ora positif utawa negatif. Lan sampeyan bisa lali babagan jinis obyek. Masalah pungkasan bakal dibahas ing artikel sabanjure, sing bakal dikhususake kanggo ruang jeneng lan skema XML, amarga ngrembug ing kene ora ana gunane. Matur nuwun kanggo kabeh perhatian, aku wis nindakake akeh karya lan terus nindakake kanggo ngrampungake kabeh seri artikel ing wektu sing tepat. Sejatine, aku mung kudu ngerteni skema XML lan nerangake babagan kasebut kanthi tembung sing luwih jelas kanggo ngrampungake artikel kaping 2. Setengah wis rampung, supaya sampeyan bisa nyana enggal. Artikel pungkasan bakal dikhususake kanggo nggarap file XML nggunakake Java. Good luck kanggo kabeh wong lan sukses ing pemrograman :) Artikel sabanjure: [Kompetisi] Dasar XML kanggo Programmer Java - Bagean 2 saka 3
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION