Bakit kailangan ang mga format ng teksto?

Ang mga format ng teksto ay maginhawa para sa pag-iimbak ng impormasyon dahil maaari silang gawin at iproseso ng parehong mga programa at mga tao.

Maaaring buksan, basahin at i-edit ang mga text file (mga file sa format na teksto) sa iba't ibang uri ng mga text editor.

Maraming mga programa ang gumagamit ng mga text-based na configuration file, kahit na ang format ay naglalaman ng mga numero at binary (oo/hindi) na mga halaga.

Ginagawa nitong medyo mas kumplikado ang mga programa dahil sa pangangailangang mag-convert mula sa teksto sa isang panloob na format at vice versa, ngunit ginagawang posible na i-edit ang configuration nang manu-mano nang hindi gumagamit ng configuration tool sa mismong program.

Saan ginagamit ngayon ang XML?

Ginagamit ang XML sa iba't ibang lugar ng IT. Maaari itong mga configuration file (na may mga setting ng program) o mga file na ginagamit upang maglipat ng data sa pagitan ng mga program. Sa Java, ang isa sa mga pinakakaraniwang kaso ng paggamit ay ang pag-configure ng Maven, isang tool ng build automation.

Istraktura ng isang XML na dokumento

Ang pisikal at lohikal na istruktura ng isang XML na dokumento ay pinananatiling hiwalay. Sa mga tuntunin ng pisikal na istraktura, ang dokumento ay binubuo ng mga entity na maaaring sumangguni sa iba pang mga entity.

Ang nag-iisang elemento ng ugat ay ang entity ng dokumento. Ang entity ay ang pinakamaliit na bahagi sa isang dokumento. Ang lahat ng entity ay may pangalan at naglalaman ng mga character.

Sa turn, ang mga character ay nabibilang sa isa sa dalawang kategorya: data ng character o markup.

Kasama sa markup ang:

  • mga tag, na tumutukoy sa mga hangganan ng elemento;
  • mga deklarasyon at mga tagubilin sa pagproseso, kasama ang kanilang mga katangian;
  • mga sanggunian ng entidad;
  • mga komento;
  • mga pagkakasunud-sunod ng character na bumabalot sa mga seksyon ng CDATA.

Logically, ang dokumento ay binubuo ng mga elemento, komento, deklarasyon, sanggunian ng entity, at mga tagubilin sa pagproseso. Ginagamit ang markup upang gawin ang lahat ng istrukturang ito sa isang dokumento.

Ang lahat ng mga bahagi ng isang dokumento ay nahahati sa isang prolog at isang elemento ng ugat. Ang root element ang mandatory, mahalagang bahagi ng isang XML na dokumento, habang ang prolog ay maaaring wala na. Ang root element ay maaaring binubuo ng mga nested na elemento, data ng character, at mga komento. Ang mga elemento ng dokumento ay dapat na naka-nest nang tama: ang anumang elemento na nagsisimula sa loob ng isa pang elemento ay dapat ding magtapos sa loob ng elementong iyon.

Mga simbolo ng markup

Palaging nagsisimula ang markup sa < at nagtatapos sa > .

Ang mga simbolo ng < at > (angle bracket) at & (ampersand) ay gumaganap ng isang espesyal na papel. Ang mga anggulong bracket ay nagpapahiwatig ng mga hangganan ng mga elemento, mga tagubilin sa pagproseso, at ilang iba pang mga pagkakasunud-sunod. At tinutulungan kami ng ampersand na palitan ang text ng mga entity.

deklarasyon ng XML

Tinutukoy ng deklarasyon ng XML ang bersyon ng wikang ginamit sa pagsulat ng dokumento. Sinasabi ng detalye ng XML na magsimula ng isang dokumento na may XML na deklarasyon dahil ang wastong interpretasyon ng mga nilalaman ng dokumento ay nakasalalay sa bersyon ng wika.

Sa unang bersyon ng wika (1.0), ang deklarasyon na ito ay opsyonal, ngunit ito ay sapilitan sa mga susunod na bersyon. Ang isang nawawalang deklarasyon ay ipinapalagay na nangangahulugang bersyon 1.0. Ang deklarasyon ay maaari ring maglaman ng impormasyon tungkol sa pag-encode ng dokumento.

Halimbawa:

<?XML version="1.1" encoding="UTF-8" ?>

Mga tag

Ang tag ay isang markup construct na naglalaman ng pangalan ng isang elemento. May mga start tag at end tag. Mayroon ding mga tag na walang laman na elemento na pinagsasama ang mga elemento ng simula at pagtatapos.

Mga halimbawa:

  • Panimulang tag: <tag1>

  • End tag: </tag1>

  • Empty-element tag: <empty_tag1 />

Mga Katangian

Ang isa pang bahagi ng mga elemento ng XML ay mga katangian. Ang isang elemento ay maaaring magkaroon ng maraming natatanging katangian. Hinahayaan kami ng mga katangian na tumukoy ng higit pang impormasyon tungkol sa isang elemento. O mas tumpak, tinutukoy ng mga katangian ang mga katangian ng mga elemento.

Ang isang katangian ay palaging isang pares ng pangalan-halaga:

pangalan = "halaga"

Halimbawa ng attribute sa isang tag:

<tag1 name = "value">elemento</tag1>

Ang value ng isang attribute ay dapat na nakabalot sa double quotes ( " ) o single quotes ( ' ). Ginagamit lang ang mga attribute sa mga start tag at sa mga empty-element na tag.

Pagtakas sa limang espesyal na character (<, >, ', ”, &)

Malinaw, ang < , > at & na mga simbolo ay hindi maaaring gamitin nang ganoon sa data ng character at mga halaga ng katangian. Kailangan mong gumawa ng mga espesyal na pagkakasunud-sunod ng pagtakas upang kumatawan sa kanila. Ginagamit din ang mga espesyal na pagkakasunud-sunod kapag nagsusulat ng mga kudlit at mga panipi sa loob ng mga halaga ng katangian:

Simbolo Pagpapalit
< <
> >
at &
' '
" "

Gayundin, upang isulat ang \ character, kailangan mong gamitin ang \\ .

Seksyon ng CDATA

Ang seksyon ng CDATA ay hindi isang lohikal na yunit ng teksto. Maaaring mangyari ang ganitong uri ng seksyon kung saan hinahayaan kami ng XML syntax na maglagay ng data ng character sa dokumento.

Ang seksyon ay nagsisimula sa <![CDATA[ at nagtatapos sa ]]> . Ang data ng character ay inilalagay sa pagitan ng mga piraso ng markup na ito, at ang < , > , at & simbolo ay maaaring gamitin sa kanilang direktang anyo.

Mga komento

Ang mga komento ay hindi itinuturing na data ng character. Nagsisimula ang komento sa <!-- at nagtatapos sa --> . Ang pagkakasunud-sunod ng character -- ay hindi magagamit sa loob ng isang komento. Gayundin, sa loob ng isang komento, ang karakter na ampersand ay hindi tumutukoy sa markup.

Halimbawa:

<!-- ito ay isang komento -->

Mga pangalan

Sa XML, lahat ng pangalan ay maaaring maglaman lamang ng mga titik sa Unicode character table, Arabic numerals, tuldok, tutuldok, gitling, at salungguhit. Ang mga pangalan ay maaaring magsimula sa isang titik, tutuldok, o salungguhit. Tandaan na ang isang pangalan ay hindi maaaring magsimula sa string XML .

Halimbawa

Tingnan natin ang isang klase ng Java at isang bagay ng klase na iyon. Pagkatapos ay susubukan naming i-serialize ang object sa XML na format. Code ng klase:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

at paglikha ng mga bagay:


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

Narito ang isang halimbawa ng isang wastong XML na representasyon ng isang Java object na naglalaman ng 4 na field, isa sa mga ito ay isang koleksyon (tingnan ang Java code sa itaas):

<Book>
  <title>Aking Paboritong Aklat</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Chapter 1</chapters>
    <chapters>Chapter 2</chapters>
    <chapters>Chapter 3</chapters>
    <chapters>Chapter 4</chapters>
    <chapters>Chapter 5</chapters>
    <chapters>Chapter 6</chapters>
 </chapters>
</Book>

XML schema

Ang XML schema ay paglalarawan ng istruktura ng isang XML na dokumento. Ang kaukulang detalye (XML Schema Definition, o XSD) ay isang rekomendasyong W3C.

Ang XSD ay idinisenyo upang ipahayag ang mga patakaran na dapat sundin ng isang XML na dokumento. Ngunit ang pinaka-kagiliw-giliw na bagay para sa amin ay ang XSD ay idinisenyo upang magamit kapag bumubuo ng software na nagpoproseso ng mga dokumentong XML. Nagbibigay-daan ito sa amin na suriin ang kawastuhan ng isang XML na dokumento sa pamamagitan ng program.

Ang mga file na naglalaman ng XML schema ay may extension na .xsd. Ang pagdidisenyo ng XML schema ay lampas sa saklaw ng araling ito, kaya sa ngayon ay magkaroon ng kamalayan na ang posibilidad ay umiiral.