Jakie są zalety plików XML?

0

Otóż czytałem o formacie .xml dość sporo, i wiem że głównymi cechami xml są
*(+) hierarchiczna struktura
*(-) nie kompresują danych
*(-) stosunkowo wolno się parsują, przy dużej ilości danych
*(+) czytelne dla człowieka
iiii... po przekalkulowaniu wszystkich zad i walet dochodzę do wniosku że nie jest to (chyba) najlepszy wybór dla mojego programu. Dlatego byłym wdzięczny gdyby ktoś mógł się podzielić informacją o formacie pliku który nadawałby się do tych celów:
#Przechowywanie dosyć sporych rozmiarów teksty
#W miarę szybki dostęp do nich
#Poukładanie danych w rekordach (jak np. w bazach danych, lub w drzewkach/tagach jak w xml, bądź jaki kolwiek inny rodzaj segregowania danych).

Przykład

<?xml version="1.0" encoding="UTF-8" ?>
<main>
  <record id="0">
    <pole1>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole1>
    <pole2>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole2>
    <pole3>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole3>
  </record>

  <record id="1">
    <pole1>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole1>
    <pole2>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole2>
    <pole3>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole3>
  </record>

  <record id=2">
    <pole1>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole1>
    <pole2>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole2>
    <pole3>dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane</pole3>
  </record>
<main/>
0

(-) nie kompresują danych

A cóż za problem ręcznie to robić?
Tzn."ręcznie" w rozumieniu "skorzystać z biblioteki dedykowanej do kompresowania danych".


A odpowiadając na pytanie - jeżeli format nie ma być bardzo zaawansowany, to sam opracuj jakiś sposób zapisywania.
0

XML to przede wszystkim format wymiany danych i to pomiędzy różnymi platformami (programistycznymi). Jeśli nie planujesz takich rzeczy to możesz postawić sobie bazkę lokalną dla twojego programu i po problemie.

1

Jako format do wymiany danych i format plikow konfiguracyjnych preferuje JSONa zamiast XMLa. Glowna zaleta JSONa jest to, ze jest znacznie prostszy i lzejszy od XMLa. To z kolei implikuje latwiejsze uzycie, lepsza czytelnosc i dostepnosc szybkich mniej zabugowanych parserow. IMHO XMLa uzywaj wtedy kiedy musisz np. wtedy gdy jakis program wypluwa wyniki w takim formacie i nie mozesz tego zmienic.
Do przechowywania tekstow np. uzywa sie Mongo DB, ktory udostepnia interfejs w JSONowym formacie.
PS.
Jakbys nie wiedzial co to jest JSON to TU jest odpowiedz.

0

Ja polecam YAML. Wyglądałoby to tak:

-
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
-
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
-
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane
 - dane dane dane dane dane dane dane dane dane dane dane dane dane dane dane

Link: http://www.yaml.org/

0

XML jest przede wszystkim upierdliwy. Tagi zamykające z powtórzeniem pełnej nazwy są do niczego niepotrzebne komputerowi (wręcz komplikują walidację i parsowanie), a człowiekowi raczej zaciemniają kod niż w czymkolwiek pomagają.

Do tego nie wystarczy pamiętać nazw poszczególnych elementów, jeszcze trzeba pamiętać co ma być tagiem a co atrybutem…

No i ciężko jest napisać prawidłowy parser XML-a, za to łatwo jest napisać zły, co skutkuje pisaniem ad-hoc parserów takiego quasi-XML-a.

Chyba pora spać, bo zaczynam łaciną sypać.
Valete.

0

Spróbuj SQLite.

Ma wszystko, czego potrzebujesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1