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.