XML + XSD: Is it possible to get all possible Values for an Element?

M

Markus

Here is the (very short) situation: :)
I have a XML-file and a XSD-file and I'm using JDOM.

Is there a way to get all possible values (attributes, sub-elements,
text) for an Element from the DocumentTree?

Kind regards

Markus
 
M

Markus

Here is the solution: :)

m_SAXErrorHandler = new ErrorHandlerImpl();
m_builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser");
m_builder.setValidation(a_b_validate);
m_builder.setErrorHandler(m_SAXErrorHandler);
m_builder.setFeature("http://apache.org/xml/features/validation/schema",
a_b_validate);
m_document = m_builder.build(a_inputStreamXML);
m_rootElement = m_document.getRootElement();

If the document is not wellformed a JDOMException is throws and if
errors against the XSD exist they a stored in m_SAXErrorHandler (a
class which implements ErrorHandler).

Example for ErrorHandlerImpl:
public class SAXErrorHandler implements ErrorHandler {

ArrayList m_warnings = new ArrayList();
ArrayList m_errors = new ArrayList();
ArrayList m_fatalErrors = new ArrayList();

/**
* @see org.xml.sax.ErrorHandler#warning(SAXParseException)
*/
public void warning(SAXParseException arg0) throws SAXException {
m_warnings.add(arg0);
System.out.println("Warning: " + arg0.getLocalizedMessage());
}

/**
* @see org.xml.sax.ErrorHandler#error(SAXParseException)
*/
public void error(SAXParseException arg0) throws SAXException {
m_errors.add(arg0);
System.out.println("Error: " + arg0.getLocalizedMessage());
}

/**
* @see org.xml.sax.ErrorHandler#fatalError(SAXParseException)
*/
public void fatalError(SAXParseException arg0) throws SAXException {
m_fatalErrors.add(arg0);
System.out.println("FatalError: " + arg0.getLocalizedMessage());
}

public boolean hasWarnings() {
return !this.m_warnings.isEmpty();
}

public boolean hasErrors() {
return !this.m_errors.isEmpty();
}

public boolean hasFatalErrors() {
return !this.m_fatalErrors.isEmpty();
}

public ArrayList getWarnings() {
return this.m_warnings;
}

public ArrayList getErrors() {
return this.m_errors;
}

public ArrayList getFatalErrors() {
return this.m_fatalErrors;
}
}

Greetings

Markus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,054
Latest member
LucyCarper

Latest Threads

Top