【发布时间】:2014-12-26 09:35:02
【问题描述】:
JAVA中如何判断给定文件是否为xml验证文件?
例如:
bool valide = IsAnXMLFile(new File("file.txt"));
谢谢。
【问题讨论】:
-
您的意思是格式良好或根据模式有效?
-
如果您想检查 XML 架构,请检查以下问题:stackoverflow.com/questions/15732/…
JAVA中如何判断给定文件是否为xml验证文件?
例如:
bool valide = IsAnXMLFile(new File("file.txt"));
谢谢。
【问题讨论】:
您只需使用解析器加载文件即可检查格式是否正确。如果文件引用了一个 dtd,那么它也会针对这个 dtd 进行验证(这要求 dtd 出现在指定的位置)。如果您使用模式语言 (f.i. xsd),则需要在加载文件时手动验证文件。 JAXP 是这里的关键字!
这是一个用于验证模式的小 sn-p:
SchemaFactory schemaFactory = SchemaFactory.newInstance(schemaLanguage.getId());
schemaFactory.setResourceResolver(getLSResourceResolver()); //optional
Schema schema = schemaFactory.newSchema(schemaURL)
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File(...)));
【讨论】:
public boolean valide(String filename) throws JDOMException, IOException
{
SAXBuilder builder = new SAXBuilder();
try{
Document doc = builder.build(new File(filename));
} catch (JDOMParseException ex) {
return false;
}
return true;
}
【讨论】: