Учитывая, что properties.dtd настолько тривиально, напишите и проанализируйте XML самостоятельно.
Выход:
private static String toXml(Properties props) throws XMLStreamException {
Writer buffer = new StringWriter();
XMLStreamWriter xml = XMLOutputFactory.newFactory()
.createXMLStreamWriter(buffer);
xml.writeStartElement("properties");
for (Map.Entry<Object, Object> entry : props.entrySet()) {
xml.writeStartElement("entry");
xml.writeAttribute("key", entry.getKey()
.toString());
xml.writeCharacters(entry.getValue()
.toString());
xml.writeEndElement();
}
xml.writeEndElement();
return buffer.toString();
}
Введите:
private static Properties fromXml(String xml) throws XPathException {
Properties props = new Properties();
NodeList entries =
(NodeList) XPathFactory.newInstance()
.newXPath()
.evaluate("//entry", new InputSource(new StringReader(xml)),
XPathConstants.NODESET);
for (int i = 0; i < entries.getLength(); i++) {
Node entry = entries.item(i);
props.setProperty(entry.getAttributes()
.getNamedItem("key")
.getNodeValue(), entry.getTextContent());
}
return props;
}
Я предполагаю, что вы хотите данные в качестве отображения JDBC по умолчанию - String.