public static void main(String[] args) {
String xsdfile = "personal.xsd";
String xmlfile = "personal.xml";
SAXParserFactory fact = SAXParserFactory.newInstance();
try{
fact.setSchema(SchemaFactory.newInstance(
XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema(new File(xsdfile)));
SAXParser parser = fact.newSAXParser(); PSVIProvider p = (PSVIProvider) parser.getXMLReader();
parser.parse(xmlfile, new DatatypeInterfaceUsage(p));
}catch(Exception ex){
System.err.println(ex);
} } public void endElement(String uri, String localName, String qName)
throws SAXException {
ElementPSVI psvi = provider.getElementPSVI();
if (psvi != null) {
// If there was an element content
Object value = psvi.getActualNormalizedValue();
short type = psvi.getActualNormalizedValueType();
XSTypeDefinition simpleType = psvi.getTypeDefinition();
    // 'name' property
    if( simpleType.getAnonymous() )
        System.out.println(qName + " \t\t\t\t: " + "Anonymous Simple Type" );
    else{
        System.out.println(qName + " \t\t\t\t: " + simpleType.getName()  );
    }
  }:)