JavaRush /Курсы /All lectures for GE purposes /XML მონაცემთა ფორმატი

XML მონაცემთა ფორმატი

All lectures for GE purposes
1 уровень , 77 лекция
Открыта

რატომ არის საჭირო ტექსტური ფორმატები?

ტექსტური ფორმატები მოსახერხებელია ინფორმაციის შენახვისთვის, რადგანაც მათ შექმნა და დამუშავება შეიძლება როგორც პროგრამების, ასევე ადამიანის მიერ.

ტექსტური ფაილები (ფაილები ტექსტურ ფორმატში) გაიხსნება, წაიკითხოს და იქნება სერიოზულად რედაქტირებული ბევრი ტექსტური რედაქტორით.

ბევრ პროგრამის კონფიგურაციის ფაილებში გამოიყენება ტექსტური ფორმატი, მიუხედავად იმისა, რომ იქ წარმოდგენილია რიცხვები და ორობითი გადამრთველები (დიახ / არა).

ეს გარკვეულწილად ართულებს პროგრამებს, ტექსტური მონაცემების შიდა ფორმატში გადაყვანისა და უკან გადაყვანის საჭიროების გამოც, თუმცა შესაძლებლობას იძლევა ხელით შეცვალოთ კონფიგურაცია, პროგრამის საკონფიგურაციო საშუალებების გარეშე.

სად იყენებენ დღეს XML?

XML იყენებენ IT-ის სხვადასხვა სფეროში. ეს შეიძლება იყოს როგორც პროგრამების კონფიგურაციის (პარამეტრების) ფაილები, ასევე ფაილები, რომელთა საშუალებითაც მონაცემები გადაეცემა პროგრამებს შორის. ერთ-ერთი ყველაზე გავრცელებული შემთხვევა Java-ში არის პროექტების შეკრების ავტომატიზაციის ინსტრუმენტის Maven-ის კონფიგურაციაში.

XML-დოკუმენტის სტრუქტურა

გამოიყოფა XML დოკუმენტის ფიზიკური და ლოჯიკური სტრუქტურა. ფიზიკური სტრუქტურის მიხედვით დოკუმენტი შედგება ერთეულებისგან (entities), თითოეული მათგანი შეიძლება ეხებოდეს ერთმანეთს.

ერთადერთი ძირეული ელემენტი — დოკუმენტის ერთეული. ერთეული — ეს დოკუმენტის ყველაზე პატარა ნაწილია. ყველა ერთეულს აქვს სახელი და შეიცავს სიმბოლოებს.

სიმბოლოები თავის მხრივ გაიყო ორ ტიპზე: მონაცემების სიმბოლოები (character data) და ნიშნების სიმბოლოები.

ნიშნების სიმბოლოები მოიცავს:

  • ტეგებს (tags), რომლებიც აღნიშნავენ ელემენტების საზღვრებს,
  • განცხადებებსა და სათანადო ინსტრუქციებს, მათი ატრიბუტებით (attributes),
  • ერთეულებზე ბმულები,
  • კომენტარები,
  • სიმბოლოების თანმიმდევრობა, რომელიც მოფარებულია "CDATA" სექციებით.

ლოჯიკური სტრუქტურის მიხედვით, დოკუმენტი შედგება ელემენტებისგან (elements), კომენტარებისგან (comments), განცხადებებისგან (declarations), ერთეულებზე ბმულებისგან (character references) და დამუშავების ინსტრუქციებისგან (processing instructions). ყველაფერი ეს დოკუმენტში სტრუქტურირდება ნიშნებით (markup).

ყველა შემადგენელი ნაწილები დოკუმენტში იყოფა პროლოგზე და ძირეულ ელემენტზე. ძირეული ელემენტი — აუცილებელი ნაწილია, რომელიც შექმნის XML დოკუმენტის არსს, ხოლო პროლოგი შეიძლება საერთოდ არ არსებობდეს. ძირეული ელემენტი შეიძლება შედგებოდეს გარდამავლობითი ელემენტებისგან, სიმბოლოების მონაცემების და კომენტარებისგან. დოკუმენტის ელემენტების გარდამავლობა სწორი უნდა იყოს: ნებისმიერი ელემენტი, რომელიც იწყება სხვა ელემენტის შიგნით, უნდა დასრულდეს ამ ელემენტის შიგნით.

ნიშნების სიმბოლოები

ნიშნები ყოველთვის იწყება სიმბოლოთი < და მთავრდება სიმბოლოთი >.

სიმბოლოებთან < და > (კუთხური ფრჩხილები) სპეციალური როლი აქვს სიმბოლოს & (ამაზრზანი). ელემენტების, დამუშავების ინსტრუქციების და ზოგიერთი სხვა სიმბოლოების საზღვრები განისაზღვრება კუთხური ფრჩხილებით. ამაზრზანი კი ეხმარება ტექსტის შეცვლას ერთეულებით.

XML-ის განცხადება

XML-ის განცხადებისას მითითებული იქნება ენის ვერსია, რომელიც გამოყენებულია დოკუმენტის დასაწერად. სპეციფიკაცია მოითხოვს დოკუმენტის დაწყებას XML-ის განცხადებით, რადგან ენის ვერსია განსაზღვრავს დოკუმენტის შინაარსის გაშიფვრის წესს.

თუ ენის პირველ (1.0) ვერსიაში განცხადება არ იყო სავალდებულო, ახალ ვერსიებში ეს სავალდებულოა, და თუ განცხადება არაა მოცემული, ეს განიხილება როგორც ვერსია 1.0. განცხადებაში შეიძლება ასევე იყოს დოკუმენტის კოდირების ინფორმაცია.

მაგალითი:

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

ტეგები

ტეგი (tag) — ნიშნების კონსტრუქცია, რომელიც შეიცავს ელემენტის სახელს. ტეგები შეიძლება იყოს გახსნის (დასაწყისი) და დახურვის (დასასრულის). ასევე არსებობს ცარიელი ელემენტის ტეგები, რომლებიც შეაერთებენ გახსნის და დახურვის ტეგებს.

მაგალითები:

  • დასაწყისი ტეგი: <tag1>

  • დასასრული ტეგი: </tag1>

  • ცარიელი ელემენტის ტეგი: <empty_tag1 />

ატრიბუტები

XML ელემენტების კიდევ ერთი ნაწილი არიან ატრიბუტები. ელემენტს შეიძლება ჰქონდეს რამდენიმე უნიკალური ატრიბუტი. ატრიბუტები საშუალებას გვაძლევს მივუთითოთ მეტი ინფორმაცია ელემენტზე. უფრო სწორად ვთქვათ, რომ ატრიბუტები განსაზღვრავენ ელემენტების თვისებებს.

ატრიბუტი ყოველთვის არის წყვილი სახელი=მნიშვნელობა:

name = "value"

ატრიბუტის მაგალითი ტეგში:

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

ატრიბუტის მნიშვნელობა უნდა იყოს ორმაგ "" ან ერთფეროვან ბრჭყალებში (''). ატრიბუტები გამოიყენება მხოლოდ დასაწყისი და ცარიელი ელემენტის ტეგებში.

ხუთი სერვისის სიმბოლოების კოდირება (<,>,’,”,&)

სხვადასხვა, სიმბოლოები <, > და & არ შეიძლება გამოყენებულ იქნას სიმბოლოების მონაცემებსა და ატრიბუტთა მნიშვნელობებში ამ ფორმით. მათი წარმოდგენისთვის უნდა გამოიყენოთ სპეციალური თანმიმდევრობა. ასევე სპეციალური თანმიმდევრობა გამოიყენება ატრიბუტების მნიშვნელობებში აპოსტოფებისა და ბრჭყალების დაწერისას:

სიმბოლო ჩანაცვლება
< &lt;
> &gt;
& &amp;
' &apos;
" &quot;

გარდა ამისა, სიმბოლოს \\ დაწერისთვის უნდა გამოიყენოთ \\\\.

CDATA სექცია

CDATA სექცია არ არის ლოჯიკური ერთეული ტექსტის. ეს სექცია შეიძლება შეგვხვდეს დოკუმენტში იმ ადგილას, სადაც სინტაქსი საშუალებას გვაძლევს განვათავსოთ სიმბოლოების მონაცემები.

სექცია იწყება <![CDATA[ და მთავრდება ]]>. ამ ნიშნებს შორის განთავსებულია სიმბოლოების მონაცემები, სადაც სიმბოლოები <, > და & შეიძლება გამოყენებული იყოს უშუალო ფორმაში.

კომენტარები

კომენტარები (comment) არ არიან დოკუმენტის სიმბოლოების მონაცემების ნაწილები. კომენტარი იწყება <!---ით და სრულდება -->-ით, ხოლო კომენტარის შიგნით არ შეიძლება გამოყენებულ იქნას სიმბოლოების თანმიმდევრობა --. გარდა ამისა, კომენტარის შიგნით ამაზრზანი სიმბოლო არ გამოიყენება როგორც ნიშნების კონსტრუქცია.

მაგალითი:

<!-- ეს კომენტარია -->

სახელები

XML-ში ყველა სახელს შეუძლია შეიცავდეს მხოლოდ Unicode-ის კოდირების ასოების სექცია, ციფრები (არაბული), წერტილები, ორი წერტილები, ხაზები და ხაზის ნიშანი. სახელი შეიძლება დაიწყოს ასოებით, ორი წერტილებით ან ხაზის ნიშნით. ყურადღება მიაქციე, რომ სტრიქონი XML ნებისმიერი რეგისტრით არ შეიძლება იყოს სახელის დასაწყისი.

მაგალითი

შევხედოთ Java კლასსა და ამ კლასის ობიექტს. შემდეგ ვეცდებით ობიექტის სერიული წარმოებას XML ფორმატში. კლასის კოდი:


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;
   }
// გეთერები/სეთერები
}

და ობიექტის შექმნა:


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

ასე გამოიყურება Java ობიექტის ვალიდური XML-წარმოდგენა, რომელიც შეიცავს 4 ველს, რომელთაგან ერთი წარმოადგენს კოლექციას (Java კოდი ზემოთ):

<Book>
  <title>My Favorite Book</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

XML Schema — XML დოკუმენტის სტრუქტურის აღწერის ენა. XML Schema-ის სპეციფიკაცია W3C-ის რეკომენდაციად მიიჩნევა.

XML Schema იყო მოფიქრებული წესების განსაზღვრისთვის, რომლებზეც უნდა იყოს დაქვემდებარებული XML დოკუმენტი. მაგრამ ყველაზე საინტერესო რამ არის ის, რომ XML Schema იყო წარდგენილი ისე, რომ მისი გამოყენება შესაძლებელი იყოს XML დოკუმენტების დამუშავების პროგრამულ უზრუნველყოფაში, რაც ნიშნავს, რომ ჩვენ შეგვიძლია პროგრამულად შევამოწმოთ XML დოკუმენტის სწორიობა.

ფაილი, რომელიც შეიცავს XML Schema-ს, აქვს გაფართოება «.xsd» (XML Schema definition). XML Schema-ის პროექტირება სცილდება ამ ლექციის ფარგლებს, ამიტომ უბრალოდ იცოდე, რომ ასეთი შესაძლებლობა არსებობს.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ