This blog is no longer being maintained, please go to The missing link of Agile instead

Sunday, May 25, 2008

Psucie XML'a

Reader discretion is advised. (1)

Na wiki u Jacka Laskowskiego pojawił się artykuł o JAXB, co pozwoliło mi po raz drugi w życiu na szybkie przyjrzenie się tej technologii. Kwestią, która przyciągnęła moja uwagę jest nazewnictwo elementów przy marshallingu kolekcji. Nazwa elementów XML odpowiada nazwie kolekcji w Javie, co daje dość śmieszny efekt w postaci:

<opakowanie>
<listaElementow>
..
</listaElementow>

<listaElementow>
..
</listaElementow>
</opakowanie>


Wydaje się, że po raz kolejny czkawką odbija się sposób implementacji generyków w Javie. Zdecydowanie lepiej, gdyby nazwy elementów były wnioskowane na podstawie typu generycznego - jeśli byłoby to możliwe :P. W jednym z projektów, w których uczestniczyłem, używano właśnie JAXB i pamiętam, że taki sposób implementacji nazw powodował niejednokrotnie zakłopotanie programistów (klientów) korzystających z tworzonego XML'a.

Posunę się do stwierdzenia, że takie traktowanie formatu XML jest niszczeniem intencji jego istnienia, a przynajmniej ważnej części jakim jest semantyka XML. Ponoć XML jest formatem samo-opisującym. Jeśli jednak będziemy go "wykrzywiać" i dopasowywać do ułomności technologicznych nie jestem pewien czy po pewnym czasie XML wciąż będzie zdatny do użytku..

1) Wyolbrzymienie problemu jest celowe.

1 comment:

  1. I always thought, that there's no reason to look into xml file generated by JAXB tools. Principle was quite simple: you create a class and generate xml file based on the class and then somebody generate a class based on this xml file.
    Of course, it would be nice if the xml description of a class would be more exactly, but till the tools generate this file automatically, based on the class, I really don't see the reason - we can talk about this in Monday :-)

    ReplyDelete