która biblioteka xml

0

Którą bibliotekę polecacie do pracy z xml? Głównie chodzi mi o prostą i posiadającą wszystkie podstawowe funkcje. Przeglądałem ale jest tego sporo

Dokładniej to mam już plik xml i scheme do niego i teraz będę chciał pod to napisać jakiś prosty program aby można była coś na danych zrobić.

0

Zalezy co chcesz robic i jakie masz potrzeby. Jak chcesz wczytac plik na raz i miec cale drzewo w pamieci (slabe rozwiazanie dla wielkich plikow) to jakies rozwiazanie DOM (Dom4j, JDom, albo to standardowe Javowe). Jesli pliki maja byc wielkie, a ty je tylko wczytujesz i przerabiasz jakies informacje, to moze jakies streamowanie: SAX, StAX. Jesli plik XML odpowiada grafowi obiektow ktore chcesz utworzyc w Javie, to moze JAXB lub xmlbeans (nie wiem czy jeszcze zyje ten projekt). Za malo info aby dac jednoznaczna odpowiedz.

0

Wielkie dzięki za info.
Generalnie ma to wyglądać tak że wczytuje obecny plik xml i moge edytowac jego zawartosc i dodwac nowe wartosci. Wszystko ma być sprawdzane ze schema. I głównym wymogiem jest że nie ma kopiowanie elementów. Np Autor jest jakis i ma swoje Id z czego kilka książek napisal to nie daje wszędzie jego info tylko jak by wskaźnij do niego. Nie wiem jak to rozwiązać. Bo nawet w obecnym pliku xml tego ona chwile obecna nie ma.

0

Wydaje sie ze potrzebujesz drzewa DOM.
Takie rzeczy (nie-kopiowanie) robi sie najczesciej tak ze artysta ma jakis atrybut, np. id, i ksiazki maja atrybut artist-id; XSD moze mirc referencje, tzn. mozna zdefiniowac ze wartosci danego atrybutu moga pobierac wartosci tylko i wylacznie z takiego a takiego zapytania XPath, ktore zwraca zbior id z tego samego dokumentu XML. Dziala ladnie.
Problem w tym ze zadna biblioteka ktora znam / uzywalem nie robi tego za Ciebie, ty musisz to robic. Dodatkowo, podczas takiej edycji nie ma sprawdzania ze schema, chyba ze sam to zrobisz (kazda zmiana by wymagala wolania validatora).

0

A ma ktoś może jakiś skrawek kodu odnośnie JDom i operacji na IDREF bo przeglądam przykłady i nigdzie nie ma nic z odwołaniem się do ID. Czyli rozumiem żę to że jest shcema podpięta to mi guzik daje bo i tak wszystko będę musiał zam zapisać odnośnie sprawdzania poprawności?

Ale ze mnie idiota:/
Chodzi o to że tworze sobie jakąś sekcje np autorzy i tam daje autorów jacy występują w moim pliku xml i nadaje każdemu id. Następnie w książce w polu autor mogę dać id_autora odpowiadające temu co mnie interesuje tak? Takie podejście jest git? Bo początkowo o jakiś fajerwerkach myślałem.

0

edit:
A czy może chodzi o to aby działać na zasadzie że np książka "Hobbit" ma autora opisanego, natomiast książka "Dzieci Hurina" Posiada tylko id takie jak jest do Tolkiena przypisane. Trochę zawile chyba jest ale mam nadzieje że zrozumiale przedstawiłem problem.

0

Mało zrozumiale. W końcu jak masz schemat i jeszcze xml do niego, to nie bardzo rozumiem skąd jakiekolwiek wątpliwości. Masz napisane, że unikalności id musisz sam pilnować, schematem możesz co najwyżej sprawdzić poprawność. Tak w ogóle, to do tego, co robisz wg mnie bardziej właściwe jest użycie relacyjnej bazy danych i dorobienie mechanizmu importu/eksportu do xml opisanego schematem.

Wklej ten xsd i xml co masz i napisz jaki masz z tym problem konkretnie.

0

Chodzi o to że obecna postać xml nie spełnia wymogu w którym informacje o aytorach nie moga się powtarzać. Każda książka ma info o autorze jakieś. Często kilka książek te same info niesie. A powinno chyba być oddzielnie w jakiejś sekcji wypisani autorzy z id i póxniej do książki tylko dawać id interesującego nas autora tak?

0
xml napisał(a)

...Dokładniej to mam już plik xml i scheme do niego i teraz będę chciał pod to napisać jakiś prosty program aby można była coś na danych zrobić.

Często kilka książek te same info niesie. A powinno chyba być oddzielnie w jakiejś sekcji wypisani autorzy z id i póxniej do książki tylko dawać id interesującego nas autora tak?

Skoro masz schemę, to tam to jest opisane jak powinno być. No chyba, że masz schemę, bo ją sobie napisałeś, a teraz chcesz zmienić. Rzeczywiście rozsądne wydaje się zrobienie sekcji na autorów i książki i przypisywanie tylko id autora do książki i rzeczywiście można do tego posłużyć się w schemie referencjami do identyfikatorów. No ale skoro to wszystko wiesz, to nie wiem jaki jest problem. Możesz sobie użyć dowolnej biblioteki do XML. Ja bym się w tym momencie skłaniał do użycia JAXB. Jest plugin do Eclipse, co generuje klasy na podstawie pliku XSD. Jak sobie wygenerujesz, to dalej już robisz wszystko na obiektach, ogólnie zapominasz, że to XML i jest fajnie :)

0

Dzięki.
Scheme sam pisałem i dlatego te drobne wątpliwości.

0

A jakieś dobre źródło do szybkiej nauki możesz polecić jakiś sprawdzony tutek, ebook?? Jak nie to pozostaje dokumentacja ale to szybkie nie jest już. Znalazłem coś takiego jak betwixt też ale jakoś ubogo o przykłady z tego. A też widze że ma pełne mapowianie xml-> obiekty

0

Spróbuj tego: http://rocksolutions.wordpress.com/2010/08/04/sample-on-jaxb-using-eclipse/
Przyznam, że nie sprawdzałem, czy to działa z aktualnym eclipse. No ale zobaczymy. Jak się nie uda, to jeszcze jest Apache Digester, XStream i wiele innych pewnie, o których nie wiem. Jednakowoż JAXB jest standardem i jest używany, więc warto mu poświęcić chwilkę nawet, jeżeli jest coś łatwiejszego.

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