XML to tylko narzędzie, które występuje w wielu odmianach i zastosowaniach. XML wyróżnia się na niektórych rzeczach, a na innych jest do bani. Myślę, że jednym z problemów jest to, że ludzie widzieli „korporacyjny” XML, który jest niepotrzebnie złożony z przestrzeniami nazw i rozrzuconymi bzdurami (SOAP, ktoś?). Sztuką projektowania formatów XML dla ludzi jest nadawanie prawdziwego znaczenia danym, a nie przytłaczanie ich do czytania.
Jedną z rzeczy, z którymi ludzie mają problem, jest to, że XML czasami dusi jakiś znak lub brakujący nawias. Istnieje jednak zarówno wada, jak i wada. Zaletą jest to, że nie masz dwuznaczności, tak jak w przypadku HTML, gdzie różne przypadki półpoprawnej składni mogą być interpretowane inaczej.
Minusem jest to, że trudniej jest napisać i trudniej się nauczyć. Zgadzam się, że można wysunąć argument, że sieć nie byłaby tak duża, gdyby HTML był tak rygorystyczny jak XML, ale argumentowałbym również, że bylibyśmy zadowoleni, gdyby tak było dzisiaj. :)
Nie używaj go również do wszystkiego, ponieważ możesz, mieć rozsądek i rozsądek, aby odpowiednio go zastosować. Jeśli wszystko, co masz, to XML, zawsze jesteś transformacją XSLT od tego, co chcesz. :)
Twierdzę, że format ma znaczenie tylko wtedy, gdy ludzie muszą z nim współdziałać. Jeśli piszesz jakiś program, który serializuje coś i wysyła go gdzieś, gdzie ma być wykorzystany przez inny z twoich programów, kogo to obchodzi, jak to wygląda, o ile jest to tak wydajne, jak to możliwe? Używaj formatu binarnego lub królików i jednorożców.
Plusy XML
- Obejmuje wiele przypadków krawędzi, których nie mają YAML i JSON
- Istnieją doskonałe narzędzia do analizowania i sprawdzania poprawności XML w szeregu różnych platform i języków
- XML można łatwo i skutecznie przekształcić w inny format (poprzez rzeczy takie jak XSLT)
- Rozsądne dokumenty XML są łatwe do odczytania i edycji przez ludzi; nie mów mi, że JSON jest łatwiejszy, nie jest :)
- XML w pewnym stopniu samoopisuje się, tzn. Zawiera bezpośrednio informacje o jego strukturze i znaczeniu (w przeciwieństwie do większości formatów binarnych)
- Obsługuje kodowanie
- Agnostyczny dla białych znaków, co ułatwia korzystanie z różnych platform
- Łamie się, jeśli nie jest dobrze sformułowany (zapewnia, że dane są strukturalnie poprawne)
- To nie jest SGML
Cons
- Gadatliwy
- Parsowanie nie jest tak szybkie jak binarne
- Zrywa się, jeśli nie jest dobrze uformowany (powoduje awarię aplikacji)
Dobre zastosowania
- Pliki konfiguracyjne
- Formaty wymiany danych
- Formaty plików odporne na wersje
- Przechowywanie dokumentów w bazach danych
Nie tak dobre zastosowania
- Formaty przesyłania danych
- Serializacja obiektów
- Przechowywanie danych relacyjnych w bazach danych
- Format pliku dla wysokowydajnych scenariuszy we / wy