这个问题在这里已有答案:
我试图用XML
验证XSD
与Java
,但我有一些问题与regex
。
regex
是^\w+\.pdf$
。这意味着,一个有效的pdf
文件名(它必须以.pdf
结尾)。我在https://regex101.com/上检查了它,它适用于“document.pdf”但不适用于document.pdff
或document.pdf
,这意味着regex
是正确的。
使用XSD
验证Java
的XML时,出现以下错误:
对于类型为'pdfDocumentType'的模式'^ \ w + .pdf $',值'document.pdf'不是facet-valid。
请帮忙吗?
提前致谢。
在这里你有我使用的代码:
InputStream xmlIs = null;
InputStream xsdIs = null;
try {
xmlIs = (new FileInputStream(xmlFile));
xsdIs = (new FileInputStream(xsdFile));
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(xsdIs));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xmlIs));
} catch ( Exception e ) {
System.out.println(e.getMessage());
}