XML/Wprowadzenie
Czym jest XML?
[edytuj]Xml jest językiem wywodzącym się z SGML (jest aplikacją języka SGML).
Co robi? W zasadzie to nic. Służy do przechowywania danych. Tutaj jednak nadal nie mamy nakierowania, ponieważ standard nie mówi nam w żaden sposób, jak mamy przechowywać dane. Opisuje tylko pewne sposoby budowy dokumentów, lecz nie na poziomie abstrakcji (jak w językach programowania), a na poziomie "technicznym", takim jak możliwe do stosowania znaki, specyficzne ciągi znaków itd. Podane są definicje zgodne z SGML.
Neutralność języka XML jest tak wysoka, że nawet istnieją języki służące do opisu dokumentów XML, będące aplikacją samego XML (np. XML Schema).
W aspektach dotyczących abstrakcji, pomagają dodatkowe standardy takie jak przestrzenie nazw w XML, internacjonalizacja, optymalne kompresowanie do formatów binarnych, obiektowy model dokumentu, xPath i inne.
HTML (HTML 4 oraz wcześniejsze są aplikacją SGML-a. HTML 5 zawiera własną serializację, lecz już oficjalnie niebędącą aplikacją SGML) i XML wywodzą się z tego samego standardu, więc mają podobną składnię. Składają się one z elementów, to określenie należy rozumieć dosłownie. Elementy zapisuje się w postaci znaczników, między którymi umieszcza się treść. W znacznikach otwierających można umieszczać atrybuty elementów.
Krótko opisany jest w kursie w3schools[1]:
XML jest skrótem od eXternsible Markup Language (rozszerzalny język znaczników).
XML jest językiem znaczników podobnie jak HTML.
XML został zaprojektowany do organizacji i przechowywania danych.
XML został zaprojektowany do bycia samo-opisującym się.
Budowa i funkcje
[edytuj]eXtensible Markup Language
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<doc>
<ustawienie>
<src>settings/1.ini</src>
<usr>gość</usr>
</ustawienie>
<ustawienie>
<src>settings/2.ini</src>
<usr pusty="tak" />
</ustawienie>
</doc>
HyperText Markup Language
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="CSS/styl.css" />
<script type="application/javascript" src="JS/jquery.min.js" />
<meta charset="UFT-8" />
<title>Strona HTML5</title>
</head>
<body>
<p>Widzisz podobieństwa i różnice?</p>
</body>
</html>
Jak widać, XML jest bardzo podobny do HTML-a. Dzięki temu opanowanie tego języka jest prostsze. I działa to w obie strony jeśli nie znasz języka HTML (co nie przeszkodzi Ci w rozumieniu informacji zawartych w tym podręczniku), łatwiej będzie ci z nim zacząć.
Patrząc na kod XML, można zauważyć dwie rzeczy:
- Dokument zaczyna się jakąś instrukcją
- Dokument zawiera jakieś nieznane znaczniki
Właśnie to jest istotą samoopisywania się i "nicnierobienia" przez XML. Znaczniki same w sobie nie oznaczają nic, opisują tylko jakiś element. Warstwę abstrakcyjną ma utworzyć oprogramowanie przetwarzające taki dokument.
W dodatku, widać coś innego zamiast DTD HTML. Jest to prolog, pierwszy element, który informuje aplikację o typie dokumentu XML.
Jakie są inne metody przechowywania danych?
[edytuj]Jest wiele alternatyw, ale wiele z nich ma pewne konwencje. Większość baz danych przechowuje dane w pewnym modelu. np. relacyjne bazy danych przechowują dane w relacjach prezentowanych jako tabele. W dokumentach "płaskich", struktury nie ma. Istnieją jednak dość podobne do XML metody przechowywania danych.
YAML
[edytuj]Rozwinięcie skrótowca (choć rekursywne) jest bardzo wymowne: YAML Ain't Markup Language. Ten język definiuje prostszą do zrozumienia dla człowieka strukturę, zawiera predefiniowane typy danych, zagnieżdżanie opiera się na wcięciach i znakach nowej linii.
Przykład kodu, który będziemy porównywać[2]:
---
firstName: John
lastName: Smith
age: 25
address:
streetAddress: 21 2nd Street
city: New York
state: NY
postalCode: 10021
phoneNumber:
- type: home
number: 212 555-1234
- type: fax
number: 646 555-4567
gender:
type: male
JSON
[edytuj]Zgodnie z nazwą (JavaScript Object Notation) jest zapisem obiektów z języka JavaScript. Z tego stanu rzeczy, tak jak YAML, zawiera predefiniowane typy danych.
Przykład kodu analogiczny do podanego w sekcji YAML[3]:
{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
],
"gender": {
"type": "male"
}
}
Formaty binarne
[edytuj]Istnieje cała masa formatów binarnych, lecz te są poza zakresem naszych rozważań. Sam XML nie nadaje się dobrze do przenoszenia danych binarnych (sam XML, ale też i wyżej podane alternatywy opierają się na znakach Wikipedia:Unicode).
Szybki start
[edytuj]XML (eXtensible Markup Language) to język znaczników, który jest szeroko stosowany do wymiany danych między aplikacjami, a także do przechowywania i przesyłania danych przez Internet. Oto kilka szybkich kroków, aby rozpocząć pracę z XML:
Utwórz nowy dokument XML: Możesz utworzyć nowy dokument XML za pomocą dowolnego edytora tekstu lub edytora XML. Dokument powinien zaczynać się od deklaracji, która zawiera wersję XML i kodowanie. Na przykład:
<?xml version="1.0" encoding="UTF-8"?>
Zdefiniuj strukturę dokumentu: Możesz zdefiniować strukturę dokumentu XML za pomocą elementów i atrybutów. Element jest kontenerem danych i może mieć atrybuty, które dostarczają dodatkowych informacji o elemencie. Na przykład:
<book id="001">
<title>XML Quick Start</title>
<author>John Doe</author>
<publisher>Publishing Company</publisher>
<year>2023</year>
</book>
Sprawdź poprawność dokumentu XML: Możesz sprawdzić poprawność dokumentu XML pod kątem schematu lub DTD (Definicja typu dokumentu), aby upewnić się, że jest on zgodny z określonym formatem. Można to zrobić za pomocą walidatora XML, który sprawdza dokument pod kątem błędów składniowych i integralności strukturalnej.
Użyj dokumentu XML: Po utworzeniu i sprawdzeniu poprawności dokumentu XML można go używać do różnych celów, takich jak wymiana danych, przechowywanie danych i transmisja danych. Dane XML można analizować i przetwarzać przy użyciu języków programowania, takich jak Java, Python i C#.
Oto podstawowe kroki, które należy wykonać, aby rozpocząć pracę z XML. W miarę zdobywania większego doświadczenia z językiem XML możesz poznać bardziej zaawansowane funkcje, takie jak przestrzenie nazw, encje i XSLT (transformacje języka arkuszy stylów XML).
Przypisy
- ↑ Lista jest tłumaczeniem z angielskiego, oryginalnej listy z sekcji What is XML, z tej strony: http://www.w3schools.com/xml/xml_whatis.asp
- ↑ Kod pochodzi z artykułu YAML z Wikipedii, dokładniej z wersji z 01:27, 11 lis 2016
- ↑ Kod pochodzi z artykułu JSON z Wikipedii, dokładniej z wersji z 13:31, 9 lis 2016