Part 1 - Validate XML
You can use the javax.xml.validation APIs for this.
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL schemaURL = // The URL to your XML Schema;
Schema schema = sf.newSchema(schemaURL);
Validator validator = schema.newValidator();
validator.validate(xml);
Part 2 - OXM
Regarding the second part of your question, the best API for parsing XML into the domain object is JAXB. JAXB is a specification with multiple implementations. I lead the MOXy JAXB implementation that contains useful extensions such as XPath based mapping.
You could always do the validation during the conversion of XML to objects:
JAXBContext jc = JAXBContext.newInstance(Customer.class);
Umarshaller unmarshaller = jc.createUnmarshaller();
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL schemaURL = // The URL to your XML Schema;
Schema schema = sf.newSchema(schemaURL);
unmarshaller.setSchema(schema);
Customer customer = (Customer) unmarshaller.unmarshal(xml);