xml-ის სწავლა ნულიდან. კატეგორიის არქივები: წიგნები XML-ზე და XSLT-ზე. XML დოკუმენტის შექმნა

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

დავიწყებთ, ჩვეულებისამებრ, თეორიით, ვნახოთ, როგორი ენაა, რატომ არის კარგი, როგორ გამოვიყენოთ და სად გამოიყენება.

XML ენის განმარტება

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

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

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

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

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

ასევე, ერთხელ მომიწია xml მონაცემების შენახვა MS SQL 2008 მონაცემთა ბაზაში, რათა უკეთ წარმომედგინა იგივე მონაცემები და გავცვალო ისინი სერვერსა და კლიენტის მხარეაპლიკაციები, ჩვენ ამას გადავხედეთ სტატიაში - Transact-sql - xml-თან მუშაობა.

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

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

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

XML ტეგები

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

და დროა მოვიყვანოთ xml მარკირების მაგალითი და პირველი მაგალითი ახლა არის სინტაქსისთვის:

<Начало элемента> <Начало вложенного элемента>ჩადგმული ელემენტის მნიშვნელობა

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

ახლა მოდით მივცეთ რეალური xml დოკუმენტის მაგალითი:

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

წიგნი 1 ივანე უბრალოდ წიგნი 1 წიგნი 2 სერგეი უბრალოდ წიგნი 2 წიგნი 3 რომანი უბრალოდ წიგნი 3

სადაც პირველი ხაზი არის განცხადება, რომ ეს არის XML დოკუმენტი და უნდა წაიკითხოთ UTF-8 კოდირებით.

ეს მონაცემები დამუშავების გარეშე გამოიყურება, მაგალითად, ბრაუზერში (Mozilla Firefox) შემდეგნაირად:

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

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

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

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

და კომუნიკაციის ცენტრში XML დოკუმენტიტყუის DOM სტანდარტი (დოკუმენტის ობიექტის მოდელი), რაც დოკუმენტებთან მუშაობის საფუძველია XML. ეს სტანდარტი არსებობს არა მხოლოდ PHP, არამედ ყველა ენაზე, რომელსაც ესმის ეს ფორმატი ( ჯავა, C++, JavaScriptდა სხვები).

და აქ სტანდარტით DOMჩვენ ვაპირებთ შეხვედრას ამ კატეგორიაში. ჩვენ განვიხილავთ ამ სტანდარტს PHP. მიუხედავად იმისა DOM სტანდარტი, ამიტომაც მას უწოდებენ "სტანდარტს", რადგან მუშაობის პრინციპები იგივე რჩება სხვა ენებზე გადასვლისას, ამიტომ პრობლემები არ არის XML დოკუმენტებიის არ იმუშავებს სხვა ენებზე.

ახლა დავიწყოთ ამ რთული, მაგრამ უდავოდ მნიშვნელოვანი ტექნოლოგიის შესწავლა.

XML საფუძვლების შესახებ სტატიების წაკითხვის შემდეგ, თქვენ შეისწავლით:

1) რატომ არის საჭირო? XML.

2) სტრუქტურა XML დოკუმენტი.

3) როგორ გავაკეთოთ RSS არხისაიტზე.

4) როგორ გავაკეთოთ შვილობილი მაღაზიასაფუძველზე XML-ფიდა.

5) როგორ გავაკეთოთ XMLსიმებიანი პარსერი.

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

შესავალი

გამარჯობა, ჩემი სტატიის ძვირფასო მკითხველებო. დაუყოვნებლივ მინდა ვთქვა, რომ ეს მხოლოდ პირველი სტატიაა ჩემი სამი სტატიის სერიიდან. მთელი სერიის მთავარი მიზანია თითოეული მკითხველის XML-ში ინიცირება და თუ არა სრული ახსნა და გაგება, მაშინ მაინც კარგი ბიძგი მისკენ, ძირითადი პუნქტებისა და საგნების ახსნა. მთელი ციკლი იქნება ერთი ნომინაციისთვის - "ყურადღება დეტალებზე", და 3 სტატიად დაყოფა გაკეთდა იმისთვის, რომ შეესაბამებოდეს სიმბოლოების ლიმიტს პოსტებში და დაყოს დიდი რაოდენობით მასალა უფრო მცირე ნაწილებად მეტი გაგებისთვის. პირველი სტატია დაეთმობა თავად XML-ს და რა არის ის, ასევე XML ფაილებისთვის სქემის შექმნის ერთ-ერთ გზას - DTD. დასაწყისისთვის, მინდა მცირე წინასიტყვაობა გავაკეთო მათთვის, ვინც ჯერ კიდევ არ იცნობს XML-ს: არ არის საჭირო შეშინება. XML არ არის ძალიან რთული და უნდა გაიგოს ნებისმიერი პროგრამისტისთვის, რადგან ის არის ძალიან მოქნილი, ეფექტური და პოპულარული ფაილის ფორმატი დღეს თქვენთვის სასურველი მრავალფეროვანი ინფორმაციის შესანახად. XML გამოიყენება Ant, Maven, Spring. ნებისმიერ პროგრამისტს სჭირდება XML-ის ცოდნა. ახლა, როცა ძალა და მოტივაცია მოიკრიბეთ, დავიწყოთ სწავლა. ვეცდები, რაც შეიძლება მარტივად ჩამოვაყალიბო ყველა მასალა, შევაგროვო მხოლოდ ყველაზე მნიშვნელოვანი და არ შევიდე სარეველაში.

XML

უფრო მკაფიო ახსნისთვის, უკეთესი იქნება XML-ის ვიზუალიზაცია მაგალითით.< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT სამოთხე< / name> < offices> < office floor= "1" room= "1" > < employees> < employee> < name> მაქსიმ< / name> < job> Middle Software Developer< / job> < / employee> < employee> < name> ივანე< / name> < job> უმცროსი პროგრამული უზრუნველყოფის შემქმნელი< / job> < / employee> < employee> < name> ფრანკლინი< / name> < job> უმცროსი პროგრამული უზრუნველყოფის შემქმნელი< / job> < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee> < name> მაცნე< / name> < job> Middle Software Developer< / job> < / employee> < employee> < name> ადამ< / name> < job> Middle Software Developer< / job> < / employee> < employee> < name> ლეროი< / name> < job> უმცროსი პროგრამული უზრუნველყოფის შემქმნელი< / job> < / employee> < / employees> < / office> < / offices> < / company>HTML და XML მსგავსია სინტაქსით, რადგან მათ აქვთ საერთო მშობელი - SGML. თუმცა, HTML-ში არის მხოლოდ კონკრეტული სტანდარტის ფიქსირებული ტეგები, ხოლო XML-ში შეგიძლიათ შექმნათ თქვენი საკუთარი ტეგები, ატრიბუტები და, ზოგადად, გააკეთოთ ის, რაც გსურთ, შეინახოთ მონაცემები ისე, როგორც თქვენთვის შესაფერისია. სინამდვილეში, XML ფაილების წაკითხვა შეუძლია ყველას, ვინც იცის ინგლისური. ეს მაგალითი შეიძლება გამოსახული იყოს ხის გამოყენებით. ხის ფესვი- კომპანია. ის ასევე არის ძირეული (ძირეული) ელემენტი, საიდანაც მოდის ყველა სხვა ელემენტი. თითოეულ XML ფაილს შეიძლება ჰქონდეს მხოლოდ ერთი root ელემენტი.ამის შემდეგ უნდა გამოცხადდეს xml ფაილის დეკლარაცია(პირველი ხაზი მაგალითში) და შეიცავს ყველა სხვა ელემენტს. ცოტა რამ დეკლარაციის შესახებ: ის სავალდებულოდა საჭიროა დოკუმენტის XML-ად იდენტიფიცირებისთვის. მას აქვს სამი ფსევდო ატრიბუტი (სპეციალური წინასწარ განსაზღვრული ატრიბუტი): ვერსია (1.0 სტანდარტის მიხედვით), კოდირება (დაშიფვრა) და დამოუკიდებელი (ავტონომია: თუ დიახ და გარე სქემები დაკავშირებულია დოკუმენტთან, მაშინ იქნება შეცდომა, ნაგულისხმევი არის არა). ელემენტებიარის ერთეულები, რომლებიც ინახავს მონაცემებს სხვა ელემენტებისა და ატრიბუტების გამოყენებით. ატრიბუტები– ეს არის დამატებითი ინფორმაცია ელემენტის შესახებ, რომელიც მითითებულია ელემენტის დამატებისას. თუ ახსნას გადავთარგმნით OOP ველში, შეგვიძლია მოვიყვანოთ შემდეგი მაგალითი: ჩვენ გვყავს მანქანა, თითოეულ მანქანას აქვს მახასიათებლები (ფერი, ტევადობა, ბრენდი და ა. : კარები, ფანჯრები, ძრავი, საჭე სხვა ელემენტებია. თქვენ შეგიძლიათ შეინახოთ თვისებები, როგორც ცალკეული ელემენტები ან ატრიბუტები, თქვენი სურვილიდან გამომდინარე. ყოველივე ამის შემდეგ, XML არის უკიდურესად მოქნილი ფორმატი ნებისმიერი ინფორმაციის შესანახად. ახსნა-განმარტებების შემდეგ, ჩვენ უბრალოდ უნდა გადავხედოთ ზემოთ მოცემულ მაგალითს, რომ ყველაფერი თავის ადგილზე დადგეს. მაგალითში ჩვენ აღვწერეთ კომპანიის მარტივი სტრუქტურა: არის კომპანია, რომელსაც აქვს სახელი და ოფისები, ხოლო ოფისებში არის თანამშრომლები. თანამშრომლების და ოფისების ელემენტები შეფუთვის ელემენტებია - ისინი ემსახურებიან იმავე ტიპის ელემენტების შეგროვებას, არსებითად აერთიანებს მათ ერთ ნაკრებში დამუშავების სიმარტივისთვის. იატაკი და ოთახი განსაკუთრებულ ყურადღებას იმსახურებს. ეს არის ოფისის ატრიბუტები (სართული და ნომერი), სხვა სიტყვებით რომ ვთქვათ, მისი თვისებები. თუ ჩვენ გვქონდა "გამოსახულების" ელემენტი, მაშინ შეგვეძლო მისი ზომების გადატანა. თქვენ შეიძლება შეამჩნიოთ, რომ კომპანიას არ აქვს სახელის ატრიბუტი, მაგრამ აქვს სახელის ელემენტი. თქვენ შეგიძლიათ უბრალოდ აღწეროთ სტრუქტურები ისე, როგორც გსურთ. არავინ ავალდებულებს ელემენტების ყველა თვისების დაწერას მხოლოდ ატრიბუტებში. მაგალითად, ჩვენ შეგვიძლია ჩავწეროთ ჩვენი თანამშრომლების სახელი და თანამდებობა, როგორც ატრიბუტები:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT სამოთხე< / 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>როგორც ხედავთ, ახლა თითოეული თანამშრომლის სახელი და თანამდებობა მისი ატრიბუტებია. და თქვენ შეგიძლიათ შეამჩნიოთ, რომ არაფერია თანამშრომლის ერთეულში (ტეგი), ყველა თანამშრომლის ელემენტი ცარიელია. შემდეგ შეგიძლიათ თანამშრომელი ცარიელ ელემენტად აქციოთ - დახურეთ იგი ატრიბუტების გამოცხადებისთანავე. ეს კეთდება საკმაოდ მარტივად, უბრალოდ დაამატეთ ხაზი:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT სამოთხე< / 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>როგორც ხედავთ, ცარიელი ელემენტების დახურვით ჩვენ შევინარჩუნეთ ინფორმაციის მთელი მთლიანობა და მნიშვნელოვნად შევამოკლეთ ჩანაწერი, რაც ინფორმაცია უფრო ლაკონური და წასაკითხი გახდა. დასამატებლად კომენტარი(ტექსტი, რომელიც გამოტოვებული იქნება ფაილის ანალიზისას) XML-ში არის შემდეგი სინტაქსი:< ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- >და ბოლო დიზაინი არის CDATA , ნიშნავს "სიმბოლო მონაცემებს". ამ დიზაინის წყალობით, შესაძლებელია ტექსტის დაწერა, რომელიც არ იქნება ინტერპრეტირებული, როგორც XML მარკირება. ეს სასარგებლოა, თუ XML ფაილის შიგნით გაქვთ ერთეული, რომელიც ინახავს XML მარკირებას ინფორმაციაში. მაგალითი:< ? xml version= "1.0" encoding= "UTF-8" ? > < bean> < information> < ! [ CDATA[ < name> ივანე< / name> < age> 26 < / age> ] ] > < / information> < / bean>XML-ის საქმე ის არის, რომ თქვენ შეგიძლიათ გააფართოვოთ ის, როგორც გსურთ: გამოიყენეთ თქვენი საკუთარი ელემენტები, საკუთარი ატრიბუტები და ააწყვეთ ის, როგორც გსურთ. თქვენ შეგიძლიათ გამოიყენოთ როგორც ატრიბუტები, ასევე ელემენტები მონაცემების შესანახად (როგორც წინა მაგალითში იყო ნაჩვენები). თუმცა, თქვენ უნდა გესმოდეთ, რომ თქვენ შეგიძლიათ შექმნათ თქვენი საკუთარი ელემენტები და ატრიბუტები, როგორც გინდათ, მაგრამ რა მოხდება, თუ თქვენ მუშაობთ პროექტზე, სადაც სხვა პროგრამისტს სურს სახელის ელემენტის გადატანა ატრიბუტებში და მთელი თქვენი პროგრამის ლოგიკა. ისე წერია რომ სახელი ელემენტი იყო? როგორ შეგიძლიათ შექმნათ თქვენი საკუთარი წესები იმის შესახებ, თუ რა ელემენტები უნდა იყოს, რა ატრიბუტები აქვთ და სხვა, რომ შეძლოთ XML ფაილების ვალიდაცია და დარწმუნებული იყოთ, რომ წესები გახდება სტანდარტული თქვენს პროექტში და არავინ დაარღვევს მათ? იმისათვის, რომ დაწეროთ თქვენი საკუთარი XML მარკირების ყველა წესი, არსებობს სპეციალური ხელსაწყოები. ყველაზე ცნობილი: DTD და XML სქემა. ამ სტატიაში ვისაუბრებთ მხოლოდ პირველზე.

DTD

DTD შექმნილია დოკუმენტების ტიპების აღსაწერად. DTD უკვე მოძველებულია და ახლა აქტიურად არის მიტოვებული XML-ში, მაგრამ ჯერ კიდევ არის ბევრი XML ფაილი, რომელიც იყენებს DTD-ს და, ზოგადად, მისი გაგება სასარგებლოა. DTD არის XML დოკუმენტების ვალიდაციის ტექნოლოგია. DTD აცხადებს სპეციფიკურ წესებს დოკუმენტის ტიპისთვის: მისი ელემენტები, რა ელემენტები შეიძლება იყოს ელემენტის შიგნით, ატრიბუტები, საჭიროა თუ არა ისინი, მათი გამეორებების რაოდენობა, ასევე ერთეულები. XML-ის მსგავსად, DTD შეიძლება ვიზუალიზდეს მაგალითით უფრო ნათელი ახსნისთვის.< ! -- Объявление возможных элементов -- > < ! 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" >აქ გვაქვს ასეთი მარტივი მაგალითი. ამ მაგალითში ჩვენ გამოვაცხადეთ ჩვენი მთელი იერარქია XML მაგალითიდან: თანამშრომელი, თანამშრომლები, ოფისი, ოფისები, სახელი, კომპანია. DTD ფაილების შესაქმნელად გამოიყენება 3 ძირითადი კონსტრუქცია ნებისმიერი XML ფაილის აღსაწერად: ELEMENT (ელემენტების აღსაწერად), ATTLIST (ელემენტების ატრიბუტების აღსაწერად) და ENTITY (ტექსტის შემოკლებული ფორმებით ჩანაცვლებისთვის). ელემენტიგამოიყენება ელემენტის აღსაწერად. ელემენტები, რომლებიც შეიძლება გამოყენებულ იქნას აღწერილ ელემენტში, ჩამოთვლილია ფრჩხილებში სიის სახით. თქვენ შეგიძლიათ გამოიყენოთ რაოდენობები რაოდენობის აღსანიშნავად (ისინი მსგავსია რეგულარული გამონათქვამების რაოდენობებთან): + ნიშნავს 1+ * ნიშნავს 0+ ? ნიშნავს 0 ან 1 თუ არ დაემატა რაოდენობები, მაშინ ითვლება, რომ უნდა იყოს მხოლოდ 1 ელემენტი.თუ ჩვენ გვჭირდებოდა ელემენტების ჯგუფიდან ერთი, შეგვიძლია დავწეროთ ასე:< ! ELEMENT company ((name | offices) ) >შემდეგ შეირჩევა ერთ-ერთი ელემენტი: სახელი ან ოფისები, მაგრამ კომპანიის შიგნით რომ იყოს ორი, მაშინ ვალიდაცია არ გაივლის. თქვენ ასევე შეგიძლიათ შეამჩნიოთ, რომ თანამშრომელში არის სიტყვა EMPTY - ეს ნიშნავს, რომ ელემენტი უნდა იყოს ცარიელი. ასევე არსებობს ნებისმიერი - ნებისმიერი ელემენტი. #PCDATA – ტექსტური მონაცემები. ATTLISTგამოიყენება ელემენტების ატრიბუტების დასამატებლად. ATTLIST-ის შემდეგ მიჰყვება სასურველი ელემენტის სახელს, შემდეგ კი ლექსიკონი ფორმის „ატრიბუტის სახელი - ატრიბუტის ტიპი“ და ბოლოს შეგიძლიათ დაამატოთ #IMPLIED (სურვილისამებრ) ან #REQUIRED (საჭიროა). CDATA – ტექსტური მონაცემები. არსებობს სხვა ტიპები, მაგრამ ისინი ყველა მცირე რეგისტრია. ENTITY ENTITY გამოიყენება აბრევიატურების და ტექსტის გამოსაცხადებლად, რომელიც განთავსდება მათზე. ფაქტობრივად, ჩვენ შეგვიძლია უბრალოდ გამოვიყენოთ XML-ში, სრული ტექსტის ნაცვლად, მხოლოდ სუბიექტის სახელი, რომელზეც & ნიშანია და; შემდეგ. მაგალითად: HTML მარკირებისა და უბრალოდ სიმბოლოების განმასხვავებლად, მარცხენა კუთხის ფრჩხილი ხშირად იშლება lt-ით; , თქვენ უბრალოდ უნდა დააყენოთ & ადრე lt. მაშინ ჩვენ არ გამოვიყენებთ მარკირებას, არამედ უბრალოდ სიმბოლოს< . Как вы можете видеть, все довольно просто: объявляете элементы, объясняете, какие элементы объявленные элементы способны содержать, добавление атрибутов этим элементам и, по желанию, можете добавить сущности, чтобы сокращать какие-то записи. И тут вы должны были бы спросить: а как использовать наши правила в нашем XML файле? Ведь мы просто объявили правила, но мы не использовали их в XML. მათი XML-ში გამოყენების ორი გზა არსებობს: 1. განხორციელება - ჩაწერეთ DTD წესები თავად XML ფაილში, უბრალოდ ჩაწერეთ root ელემენტი DOCTYPE საკვანძო სიტყვის შემდეგ და ჩადეთ ჩვენი DTD ფაილი კვადრატულ ფრჩხილებში. < ? 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 სამოთხე< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < 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. იმპორტი - ჩვენ ყველა ჩვენს წესს ვწერთ ცალკე DTD ფაილში, რის შემდეგაც XML ფაილში ვიყენებთ DOCTYPE კონსტრუქციას პირველი მეთოდიდან, მხოლოდ კვადრატული ფრჩხილების ნაცვლად უნდა ჩაწეროთ SYSTEM და მიუთითოთ აბსოლუტური ან ფარდობითი გზა. ფაილის მიმდინარე მდებარეობა. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company SYSTEM "dtd_example1.dtd" > < company> < name> IT სამოთხე< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < 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>თქვენ ასევე შეგიძლიათ გამოიყენოთ PUBLIC საკვანძო სიტყვა SYSTEM-ის ნაცვლად, მაგრამ ნაკლებად სავარაუდოა, რომ ის თქვენთვის სასარგებლო იყოს. თუ გაინტერესებთ, შეგიძლიათ წაიკითხოთ ამის შესახებ (და ასევე SYSTEM-ის შესახებ) დეტალურად აქ: ბმული. ახლა ჩვენ ვერ გამოვიყენებთ სხვა ელემენტებს DTD-ში მათი გამოცხადების გარეშე და ყველა XML ექვემდებარება ჩვენს წესებს. შეგიძლიათ სცადოთ მისი ჩაწერა ეს კოდიIntelliJ IDEAცალკე ფაილი.xml გაფართოებით და სცადეთ დაამატოთ რამდენიმე ახალი ელემენტი ან ამოიღოთ ელემენტი ჩვენი DTD-დან და შეამჩნიეთ, როგორ მიუთითებს IDE შეცდომაზე. თუმცა, DTD-ს აქვს თავისი ნაკლოვანებები:
  • მას აქვს საკუთარი სინტაქსი, რომელიც განსხვავდება xml სინტაქსისგან.
  • DTD-ს არ აქვს მონაცემთა ტიპის შემოწმება და შეიძლება შეიცავდეს მხოლოდ სტრიქონებს.
  • DTD-ში სახელთა სივრცე არ არის.
საკუთარი სინტაქსის პრობლემის შესახებ: თქვენ უნდა გესმოდეთ ერთდროულად ორი სინტაქსი: XML და DTD სინტაქსი. ისინი განსხვავებულები არიან და ამან შეიძლება დაგაბნიოთ. ასევე, ამის გამო, უფრო რთულია შეცდომების თვალყურის დევნება უზარმაზარ XML ფაილებში იმავე DTD სქემებთან ერთად. თუ რამე არ გამოგდის, უნდა შეამოწმო უზარმაზარი თანხასხვადასხვა სინტაქსის ტექსტი. ეს ჰგავს ორი წიგნის ერთდროულად კითხვას: რუსულ და ინგლისურ ენებზე. და თუ ერთი ენის ცოდნა უარესია, მაშინ ტექსტის გაგება ისეთივე რთული იქნება. მონაცემთა ტიპის შემოწმების პრობლემის შესახებ: DTD-ებში ატრიბუტები რეალურად აქვთ სხვადასხვა ტიპის, მაგრამ ისინი ყველა არსებითად არის რაღაცის, სიების ან ბმულების სიმებიანი წარმოდგენები. თუმცა, თქვენ არ შეგიძლიათ მოითხოვოთ მხოლოდ რიცხვები და განსაკუთრებით არა დადებითი ან უარყოფითი. და თქვენ შეგიძლიათ მთლიანად დაივიწყოთ ობიექტების ტიპები. ბოლო პრობლემა განიხილება შემდეგ სტატიაში, რომელიც დაეთმობა სახელთა სივრცეებს ​​და XML სქემებს, რადგან აქ განხილვა აზრი არ აქვს. მადლობა ყველას ყურადღებისთვის, მე ეს გავაკეთე დიდი სამუშაოდა ვაგრძელებ ამის გაკეთებას, რათა დროულად დავასრულო სტატიების მთელი სერია. ძირითადად, მე უბრალოდ უნდა გავარკვიო XML სქემები და მივიღო მათი ახსნა უფრო მკაფიო სიტყვებით, რომ დავასრულო მე-2 სტატია. მისი ნახევარი უკვე შესრულებულია, ასე რომ თქვენ შეგიძლიათ ელოდოთ მას მალე. ბოლო სტატია მთლიანად დაეთმობა მუშაობას XML ფაილებიჯავის გამოყენებით. წარმატებები ყველას და წარმატებები პროგრამირებაში :) შემდეგი სტატია:

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

ამ სტატიაში

მარკირება, მარკირება და ტეგები

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

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

ამ სტატიის ტექსტი ქ HTML ფორმატიარის კარგი მაგალითიკომპიუტერის მარკირების გამოყენება. თუ შიგნით Microsoft ინტერნეტი Explorer დააწკაპუნეთ ამ გვერდზე დააწკაპუნეთ მარჯვენა ღილაკითმაუსი და აირჩიეთ ბრძანება ნახეთ HTML კოდი, ნახავთ წასაკითხი ტექსტიდა HTML ტეგები, მაგალითად

და

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

...

) და ნახატების მდებარეობა.

XML-ის მახასიათებლები

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

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

მუშაობისას გაითვალისწინეთ შემდეგი:

    HTML არ შეიძლება გამოყენებულ იქნას XML-ის ნაცვლად. თუმცა, XML მონაცემები შეიძლება ჩაირთოს HTML ტეგებში და გამოჩნდეს ვებ გვერდებზე.

    HTML მახასიათებლებიშემოიფარგლება ყველა მომხმარებლისთვის საერთო ტეგების წინასწარ განსაზღვრული ნაკრებით.

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

    იზი სიამის 6 დიახ არა Izz138bod კოლინ უილკოქსი

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

მაგრამ არ აურიოთ ამ მაგალითში მოცემული ტეგები HTML ფაილში. მაგალითად, თუ ზემოთ მოყვანილი XML ტექსტი ჩასმულია HTML ფაილში და გახსნილია ბრაუზერში, შედეგები ასე გამოიყურება:

Izzy Siamese 6 დიახ არა Izz138bod Colin Wilcox

ვებ ბრაუზერი უგულებელყოფს XML ტეგებს და აჩვენებს მხოლოდ მონაცემებს.

კარგად ჩამოყალიბებული მონაცემები

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

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

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

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

სქემები

არ შეგაშინოთ ტერმინი „სქემა“. სქემა უბრალოდ XML ფაილია, რომელიც შეიცავს XML მონაცემთა ფაილის შიგთავსის წესებს. სქემის ფაილებს ჩვეულებრივ აქვთ გაფართოება XSD, ხოლო XML მონაცემთა ფაილებს იყენებენ XML გაფართოებას.

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

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

არ ინერვიულოთ, თუ მაგალითი არ არის ნათელი. უბრალოდ ყურადღება მიაქციეთ შემდეგს:

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

    დეკლარაციები მონაცემთა სტრუქტურის მანიპულირების მძლავრი საშუალებაა. მაგალითად, რეკლამა ნიშნავს, რომ ტეგები, როგორიცაა და , უნდა დაიცვას ზემოაღნიშნული თანმიმდევრობით. რეკლამებს ასევე შეუძლიათ მომხმარებლის შეყვანის ტიპების დადასტურება. მაგალითად, ზემოაღნიშნული წრე მოითხოვს დადებითი მთელი რიცხვის შეყვანას კატის ასაკისთვის და ლოგიკური მნიშვნელობები (TRUE ან FALSE) ALTERED და DECLAWED ტეგებისთვის.

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

ტრანსფორმაციები

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

თქვენ (ან თქვენს IT განყოფილებას) ასევე შეგიძლიათ გამოიყენოთ ტრანსფორმაციები მონაცემთა გაცვლა-გამოცვლის მიზნით, მაგალითად, მონაცემთა ბაზებს შორის. დავუშვათ, რომ მონაცემთა ბაზა A ინახავს გაყიდვების მონაცემებს ცხრილში, რომელიც სასარგებლოა გაყიდვების განყოფილებისთვის. მონაცემთა ბაზა B ინახავს შემოსავლებისა და ხარჯების მონაცემებს სპეციალურად აღრიცხვისთვის შექმნილ ცხრილში. მონაცემთა ბაზა B-ს შეუძლია გამოიყენოს ტრანსფორმაცია მონაცემთა ბაზიდან A-დან მონაცემების ასაღებად და შესაბამის ცხრილებში გადასატანად.

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

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

სახელი ჯიშის ასაკი შეცვლილი დეკლარირებული ლიცენზია მფლობელი

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

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

XML Microsoft Office სისტემაში

Office-ის პროფესიონალური გამოცემები უზრუნველყოფს გაძლიერებულ XML მხარდაჭერას. 2007 წლის Microsoft Office System-ით დაწყებული, Microsoft Office იყენებს XML-ზე დაფუძნებულ ფაილის ფორმატებს, როგორიცაა DOCX, XLSX და PPTX. იმის გამო, რომ XML ინახავს მონაცემებს ტექსტის ფორმატში და არა საკუთრებაში არსებულ ორობით ფორმატში, კლიენტებს შეუძლიათ განსაზღვრონ საკუთარი სქემები და გამოიყენონ თქვენი მონაცემები სხვადასხვა გზით, ჰონორარის გადახდის გარეშე. ახალი ფორმატების შესახებ დამატებითი ინფორმაციისთვის იხილეთ XML ფორმატების გახსნა და ფაილის სახელების გაფართოებები. ქვემოთ მოცემულია სხვა სარგებელი.

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

ჩართეთ XML ფუნქციები Office-ში

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

ყველა მაგალითისთვის გამოიყენება სტანდარტის ქვემოთ XSL ენა. ამ სტანდარტის უფრო თანამედროვე მოდიფიკაცია, XSL ენა, ასევე ფართოდ გამოიყენება. , რომლის შესახებ უფრო დეტალურად შეგიძლიათ წაიკითხოთ \xml\XSLTutorial ან MSDN.

მოდით შევხედოთ XML ფაილის მარტივ მაგალითს (ex01.xml). ეს და სხვა მაგალითები შეგიძლიათ ნახოთ \xml\ XSLTForBeginers საქაღალდეში დისკზე.



"შენიშვნები XSL-ზე"

თუ ამ ფაილს გავხსნით ინტერნეტ ბრაუზერი Explorer, ჩვენ დავინახავთ იგივე ტექსტს, როგორც ზემოთ, ყველა ტეგთან და სერვისის ინფორმაციასთან ერთად. მაგრამ ჩვენ არ გვჭირდება ტეგები და სერვისის ინფორმაცია! ჩვენ გვინდა ვიხილოთ მხოლოდ საქმის შესაბამისი ინფორმაცია და ტეგების დახმარებით გვინდა ვმართოთ გარეგნობაამ ინფორმაციას. ამ ამოცანის გადაჭრა შესაძლებელია მარტივად და მარტივად: თქვენ უნდა დაამატოთ ტრანსფორმაციის შაბლონი - XSL ფაილი - XML ​​ფაილს.

მოდით გადავიწეროთ ჩვენი XML ფაილი შემდეგი ფორმა(ex01-1.xml).




"შენიშვნები XSL-ზე"

და მოდით შევქმნათ XSL ფაილი ex01-1.xsl. ფაილის ტექსტი მოცემულია ქვემოთ.






თუ ახლა გავხსნით ex01-1.xsl ფაილს ბრაუზერში Internet Explorer, შემდეგ დავინახავთ, რომ ჩვენი პრობლემა მოგვარებულია - ეკრანზე რჩება მხოლოდ საჭირო ინფორმაცია, ყველა ტეგი გაქრა. შედეგი, რომელსაც მიიღებთ თქვენი ბრაუზერის ეკრანზე, მოცემულია ქვემოთ.

"შენიშვნები XSL-ზე"

ასევე ადვილი მისახვედრია, რომ ხაზების ჩვენების თანმიმდევრობა განისაზღვრება მხოლოდ ტრანსფორმაციის შაბლონის - XSL ფაილის შინაარსით. საჭიროების შემთხვევაში, შაბლონი მარტივად შეიძლება შეიცვალოს ჩვენი მთავარი XML ფაილის საერთოდ შეცვლის გარეშე.

მოდით გადავიწეროთ XML ფაილი. ჩვენ არ შევცვლით საინფორმაციო ნაწილს, მაგრამ მივუთითებთ სხვა შაბლონს ex01-2.xml.




"შენიშვნები XSL-ზე"

მოდით შევქმნათ XSL ფაილი ex01-2.xsl. ფაილის ტექსტი მოცემულია ქვემოთ.






თუ ახლა გავხსნით ex01-2.xsl ფაილს Internet Explorer-ში, შედეგი განსხვავებული იქნება.

"შენიშვნები XSL-ზე"

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

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

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

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

პირველი ნაბიჯები

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



"შენიშვნები XSL-ზე"

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

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

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

ყოველთვის არის ერთი ელემენტი XML ფაილის ზედა დონეზე. ანუ ფაილი, როგორიცაა



"შენიშვნები XSL-ზე"



"შესავალი CSP-ში"

ბრაუზერის მიერ არ იქნება დამუშავებული. მოქმედ XML ფაილად გადასაყვანად საჭიროა ელემენტის ტეგების დამატება უმაღლესი დონე, მაგალითად




"შენიშვნები XSL-ზე"



"შესავალი CSP-ში"


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

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

იმისათვის, რომ ბრაუზერმა შეასრულოს საჭირო ტრანსფორმაცია, თქვენ უნდა მიუთითოთ XSL ფაილის ბმული XML ფაილში


მოდით ახლა გადავხედოთ XSL ფაილის ტექსტს






ფაილის პირველი ხაზი შეიცავს xsl:stylesheet ელემენტის ტეგს. ელემენტის ატრიბუტებია ვერსიის ნომერი და სახელთა სივრცის მითითება. ეს xsl:stylesheet ელემენტის ატრიბუტებია საჭირო. ჩვენს შემთხვევაში, სახელთა სივრცე არის ელემენტების ყველა სახელი და მათი ატრიბუტები, რომლებიც შეიძლება გამოყენებულ იქნას XSL ფაილში. XSL ფაილებისთვის სახელთა სივრცის მითითება სტანდარტულია.

გაითვალისწინეთ, რომ XSL ფაილი არის XML ფაილის ტიპი. ის არ შეიცავს მომხმარებლის მონაცემებს, მაგრამ მისი ფორმატი იგივეა. ფაილი შეიცავს ზედა დონის ელემენტს xsl:stylesheet და შემდეგ არის ტრანსფორმაციის წესების ხე.

ამ დოკუმენტში ჩვენ დეტალურად არ განვმარტავთ, რას ნიშნავს XSL ფაილის თითოეული ელემენტი. მოვიტანთ სხვადასხვა მაგალითებიდა აჩვენე შედეგი თითოეულ მაგალითში, რაც შესაძლებელს გახდის დამოუკიდებლად შედარებას სხვადასხვა ელემენტები XSL ფაილი და ამ ელემენტებით ინიცირებული ტრანსფორმაციები ორიგინალურ XML ფაილზე მომხმარებლის ინფორმაციით. ასევე გაითვალისწინეთ, რომ ატრიბუტის მნიშვნელობა აირჩიეთდა მსგავსები „არჩევის“ მნიშვნელობით იწერება სპეციალური ენა XPath, რომლის შესახებ მოკლედ შეგიძლიათ წაიკითხოთ \xml\XPathTutorial დისკზე და უფრო დეტალურად MSDN-ზე.

მომავალში ჩვენ შემოგთავაზებთ XML და XSL ფაილების ტექსტებს შავი და თეთრი ვერსია. თქვენ ყოველთვის შეგიძლიათ გახსნათ რეალური ფაილიდა ნახე ყველაფერი ფერად. საჭიროების შემთხვევაში, კომენტარი გააკეთეთ XSL ფაილის ბმულზე. კომენტარის სინტაქსი ასეთია -. სიმბოლოები -- ვერ ჩასმულია კომენტარის ტექსტში.

პირველ მაგალითში ჩვენ შევხედეთ, თუ როგორ შეიძლება xsl:value-of ელემენტის გამოყენება ელემენტის შინაარსის (ტეგს შორის ჩასმული) HTML ფორმატში საჩვენებლად. ახლა ჩვენ ვნახავთ, როგორ შეგვიძლია გამოვიყენოთ იგივე ელემენტი ელემენტის ატრიბუტის მნიშვნელობის საჩვენებლად.

განვიხილოთ შემდეგი XML ფაილი ex02-1.xml



რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: