Hi Everyone,

I am using Castor to unmarshal a very simple XML document and I wish to
have Castor indicate when it encounters anything in the XML that it cannot
unmarshal. I am not using a mapping file as the XML to Java conversion is
simple and straight-forward.

I have searched high and low and googled and looked in the javadocs and
done all I can to find out how to do this, but to no success. Castor
continues to silently ignore the error in the XML.

So now I am asking you for help, and hoping someone will kindly answer this
very simple question.

Take the following class:

    public class Library {
        
        private List<String> books;
        
        public Library() {
            books = new LinkedList<String>();
        }
        
        public void addBook(String title) {
            books.add(title);
        }
        
        public String toString() {
            return "Books = " + books;
        }
    }

with this XML file "library.xml" (the misspelled "boook" is intentional):

    <library>
        <book>War And Peace</book>
        <book>Ulysses</book>
        <boook>Crime And Punishment</boook>
    </library>
    
and with this Castor application:

    public class CastorTest {
        public static void main(String[] args) {
            try {
                Unmarshaller unmarshaller = new Unmarshaller(Library.class);
                unmarshaller.setIgnoreExtraAttributes(false);
                unmarshaller.setIgnoreExtraElements(false);
                unmarshaller.setValidation(true);
                Reader reader = new FileReader(new File("library.xml"));
                Library library = (Library)unmarshaller.unmarshal(reader);
                System.out.println(library);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

The 3rd book in the library file is misspelled "boook". I want Castor to
tell me somehow that this is something it does not understand.

No matter what I do, the program runs without throwing an Exception or
printing an error message. The output of the above is:

    Books = [War And Peace, Ulysses]
    
Please answer this specific question:

    Exactly what should I add/remove/change in the
    CastorTest class above to accomplish this ?

Thank you very much !

- Rodney


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to