1 package eu.svjatoslav.inspector.xml.xsd;
3 import java.io.FileInputStream;
4 import java.io.FileNotFoundException;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.util.HashMap;
10 import javax.xml.parsers.DocumentBuilder;
11 import javax.xml.parsers.DocumentBuilderFactory;
12 import javax.xml.parsers.ParserConfigurationException;
14 import org.w3c.dom.Document;
15 import org.xml.sax.SAXException;
19 private static final String XMLNS_PREFIX = "xmlns:";
20 Map<String, String> namespaces = new HashMap<String, String>();
22 private void detectNamespaces(final XmlElement xsdSchema) {
23 for (final String attributeName : xsdSchema.getAttributeNames())
25 if (attributeName.startsWith(XMLNS_PREFIX)) {
26 final String nameSpaceName = attributeName
27 .substring(XMLNS_PREFIX.length());
28 namespaces.put(nameSpaceName,
29 xsdSchema.getAttributeValue(attributeName));
33 public void parse(final InputStream inputStream) {
35 final DocumentBuilderFactory builderFactory = DocumentBuilderFactory
38 DocumentBuilder builder = null;
40 builder = builderFactory.newDocumentBuilder();
41 } catch (final ParserConfigurationException e) {
47 document = builder.parse(inputStream);
48 } catch (final SAXException e) {
51 } catch (final IOException e) {
56 final XmlElement xsdSchema = new XmlElement(
57 document.getDocumentElement());
59 detectNamespaces(xsdSchema);
61 System.out.println(xsdSchema.toString());
64 public void parse(final String filePath) throws FileNotFoundException {
66 final FileInputStream inputStream = new FileInputStream(filePath);
72 public String toString() {
73 final StringBuffer result = new StringBuffer();
75 result.append("namespaces:\n");
77 for (final Map.Entry<String, String> entry : namespaces.entrySet())
78 result.append(" " + entry.getKey() + " = " + entry.getValue()
81 return result.toString();