Co to jest format pliku XML?
Pliki .xml przechowują dane w formacie Extensible Markup Language, standardzie tekstowym opracowanym przez W3C. Pliki XML mogą reprezentować dowolną strukturę danych w postaci zwykłego tekstu, co czyni je odpowiednimi do przechowywania, udostępniania i przesyłania danych między aplikacjami w internecie.
XML wykorzystuje struktury znaczników - zagnieżdżone tagi i atrybuty - które definiują reguły, jakich musi przestrzegać proces kodowania, aby tworzyć dokumenty czytelne zarówno dla maszyn, jak i dla ludzi. Został zaprojektowany jako bardziej dostępna implementacja SGML (Standard Generalized Markup Language), uproszczona na potrzeby sieci. Pliki zazwyczaj zaczynają się od deklaracji <?xml version="1.0" encoding="UTF-8"?>, a typ MIME to application/xml.
Pliki XML używają kodowania Unicode (domyślnie UTF-8) i mogą być otwierane oraz edytowane za pomocą dowolnego standardowego edytora tekstu. Ponieważ format jest samoopisujący - każdy element jest nazwany i zagnieżdżony w jasnej hierarchii - dane można przeglądać bez dedykowanego oprogramowania, choć przetwarzanie lub odpytywanie ich programowo wymaga parsera lub języka zapytań, takiego jak XPath.
XML pod wieloma względami przypomina .HTML, ponieważ oba formaty używają języka znaczników do reprezentowania ustrukturyzowanej treści. HTML koncentruje się na prezentacji i interakcji ze stroną internetową, podczas gdy XML opisuje treść w odniesieniu do samych danych. Oba formaty są używane razem w wielu aplikacjach internetowych. XML służy również jako podstawa dla powiązanych standardów, takich jak schematy walidacji .XSD, arkusze stylów transformacji .XSL i kanały syndykacji .RSS.
Bezpieczeństwo
RYZYKO: MEDIUMPlik XML to zwykły tekst i nie zawiera kodu wykonywalnego, więc jego odczytanie jest bezpieczne. Prawdziwe ryzyko leży po stronie PARSERA, a nie pliku: ataki XML External Entity (XXE) wykorzystują deklaracje <!DOCTYPE>/<!ENTITY> do odczytu lokalnych plików lub wywoływania żądań sieciowych, a ekspansja encji „billion laughs” może wyczerpać pamięć (odmowa usługi). Ma to znaczenie tylko wtedy, gdy oprogramowanie analizuje niezaufany XML z włączonym przetwarzaniem encji zewnętrznych i DTD - nowoczesne parsery domyślnie je wyłączają. Dla użytkownika końcowego, który tylko otwiera .xml do odczytu, nie ma zagrożenia; ostrożność dotyczy programistów przetwarzających niezaufane dane XML. Należy również uważać na pliki, które wyglądają jak „data.xml”, ale w rzeczywistości są czymś innym ze zmienioną nazwą.
Szczegóły formatu
w pigułceProgramy otwierające pliki XML
Szczegóły techniczne
specyfikacja| Kodowanie pliku | Tylko Unicode; UTF-8 jest domyślne, gdy brak deklaracji; UTF-16 i UTF-32 są obsługiwane i muszą być zadeklarowane w prologu XML |
| Typ MIME | `application/xml` (podstawowy, wg RFC 7303); `text/xml` akceptowany dla wstecznej kompatybilności; specyficzne dialekty mogą rejestrować własne typy (np. `application/rss+xml`) |
| Sygnatura pliku | Brak stałej binarnej „magicznej liczby”; pliki zazwyczaj zaczynają się od opcjonalnej deklaracji XML `<?xml` (hex `3C 3F 78 6D 6C`); może ją poprzedzać znacznik UTF-8 BOM (`EF BB BF`) lub UTF-16 BOM (`FF FE` / `FE FF`) |
| Struktura dokumentu | Ścisła hierarchia: dokładnie jeden element główny (root); nieograniczone zagnieżdżanie elementów podrzędnych; znaczniki otwierające mogą zawierać nazwane atrybuty w cudzysłowie; całe drzewo musi być poprawnie sformułowane |
| Zasady poprawnej formy | Wszystkie znaczniki muszą być zamknięte (lub samozamykające); elementy nie mogą się krzyżować; wartości atrybutów muszą być w cudzysłowie; pięć predefiniowanych encji (&, <, >, ", ') obsługuje znaki zarezerwowane |
| Mechanizmy walidacji | DTD (Document Type Definition - wbudowany lub zewnętrzny plik `.dtd`, starszy standard) oraz XSD (XML Schema Definition - plik `.xsd` sam napisany w XML, z bogatszym systemem typów); Schematron oferuje walidację opartą na regułach |
| Obsługa przestrzeni nazw | Deklaracje `xmlns` i `xmlns:prefix` wiążą nazwy elementów i atrybutów z URI, zapobiegając kolizjom przy łączeniu słowników z wielu źródeł |
| Sekcje CDATA | Bloki `<![CDATA[...]]>` pozwalają na umieszczanie surowego tekstu zawierającego <, > i & bez użycia encji; przydatne do osadzania fragmentów HTML lub kodu skryptów |
| Instrukcje przetwarzania | Składnia `<?target instruction?>` osadza dyrektywy specyficzne dla aplikacji (np. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) poza modelem danych XML |
| Języki zapytań | XPath 1.0/2.0/3.1 adresuje poszczególne węzły wewnątrz dokumentu; XQuery zapewnia zapytania w stylu SQL nad zestawami danych XML; oba są standardami W3C |
| Transformacja XSLT | Pliki `.xml` mogą być przekształcane do HTML, zwykłego tekstu lub innych słowników XML w czasie rzeczywistym przez procesor XSLT łączący dokument źródłowy z arkuszem stylów `.xsl` lub `.xslt` |
| Składnia komentarzy | Komentarze `<!-- tekst -->` mogą pojawiać się w dowolnym miejscu poza znacznikiem; podwójne myślniki są zabronione wewnątrz treści komentarza; komentarze są wykluczone z modelu danych XML |
| Normalizacja nowej linii | Zgodne z normą parsery normalizują sekwencje \r\n oraz pojedyncze \r do znaku \n przed przetwarzaniem, zapewniając spójne zachowanie końców linii na różnych platformach |
| Deklaracje encji | Encje nazwane (&nazwa;) i numeryczne odwołania do znaków (&#nnnn; dziesiętne lub &#xHHHH; szesnastkowe) osadzają dowolny punkt kodowy Unicode; niestandardowe encje można deklarować w DTD |
| Struktura prologu | Dokument XML składa się z opcjonalnej deklaracji XML, opcjonalnej deklaracji DOCTYPE, opcjonalnych instrukcji przetwarzania i komentarzy, po których następuje dokładnie jeden element główny |
| Ekosystem dialektów | XML jest bazową składnią dla XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML oraz formatów konfiguracyjnych używanych przez Android, Maven, Spring i Java EE |
| Wydano | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.w3.org |
Konwersje XML
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki XML.