First get xml content as a string then parse the same content to get element and type.
System.out.println("Messages: ");
for (Message msg : defs.getMessages()) {
System.out.println(" Message Name: " + msg.getName());
System.out.println(" Message Parts: ");
for (Part part : msg.getParts()) {
String xmlContent = part.getElement().getEmbeddedType().getAsString();
System.out.println("xsd String : "+td);
String xmlContent ="<xsd:complexType xmlns:xsd='
http://www.w3.org/2001/XMLSchema'> <xsd:sequence minOccurs='1' maxOccurs='1'> <xsd:element name='username' type='xsd:string' minOccurs='0' /> <xsd:element name='password' type='xsd:string' minOccurs='0' /> </xsd:sequence> </xsd:complexType>";
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource src = new InputSource();
src.setCharacterStream(new StringReader(embeddedCont));
Document doc = builder.parse(src);
NodeList list = doc.getElementsByTagName("xsd:element");
ArrayList<Object> element = new ArrayList<Object>();
//loop to print data
for(int i = 0 ; i < list.getLength(); i++)
{
HashMap<String, String> attr = new HashMap<String, String>();
Element first = (Element)list.item(i) ;
if( first.hasAttributes())
{
String name = first.getAttribute("name");
String type = first.getAttribute("type");
attr.put("name", name);
attr.put("type", type);
element.add(attr);
}
}
Thanks
Purnesh