Obecnie używam JAXB do parsowania plików xml. Wygenerowałem klasy wymagane przez plik xsd. Jednak otrzymane pliki xml nie zawierają wszystkich węzłów zadeklarowanych w wygenerowanych klasach. Poniżej znajduje się przykład struktury mój plik XML:Obsługa brakujących węzłów za pomocą JAXB
<root>
<firstChild>12/12/2012</firstChild>
<secondChild>
<firstGrandChild>
<Id>
</name>
<characteristics>Description</characteristics>
<code>12345</code>
</Id>
</firstGrandChild>
</secondChild>
</root>
mam do czynienia z dwóch następujących przypadkach:
- Węzeł
<name>
jest obecny w generowanych klas, ale nie w plikach XML - Węzeł nie ma wartości
W obu przypadkach wartość jest ustawiona na wartość null. Chciałbym móc odróżnić, gdy węzeł jest nieobecny w pliku XML i gdy jest obecny, ale ma wartość null. Pomimo moich poszukiwań, nie znalazłem sposobu, aby to zrobić. Każda pomoc jest więcej niż mile widziane
Dziękuję z góry za poświęcony czas i pomoc
Pozdrowienia
xsi: nil jest twoim przyjacielem! Czytaj więcej tutaj http://stackoverflow.com/questions/774192/what-is-the-correct-way-to-represent-null-xml-elements – MariuszS
Dziękuję za odpowiedź! Jak rozumiem, chodzi o ustawienie wartości węzła na "" zamiast wartości zerowej. Problem, przed którym stoję, polega na tym, że dla JAXB, pusty węzeł i nieoczekiwany węzeł w pliku xml są obsługiwane w ten sam sposób. Tak więc nie wiem, czy otrzymałem węzeł w pliku, czy też zrobiłem i jego wartość była zerowa – user2249868
Poniższy przykład pomoże w 'xsi: nil': http://blog.bdoughan.com/2012/04/binding -to-json-xml-handling-null.html –