使用Java中的外部DTD进行XML验证

时间:2009-07-24 13:22:29

标签: java xml dtd

如何测试xml字符串以查看它是否验证和dtd文件?

我已阅读this question,但他们只是在谈论更换xml文件上的dtd声明。

Person.DTD

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT person (id)>
<!ELEMENT id (#PCDATA)>

测试

@Test
public void should_serialize_a_shootout_to_xml_and_validate_against_a_dtd(){
    String xml = "<person><id>12</id></person>";        
    Assert.assertTrue(validate_xml("person.dtd",xml));
}

boolean validate_xml(String dtd_filename,String xml){
    //check xml and throw validation errors
    throw new NotImplementedException();
}

谢谢!

1 个答案:

答案 0 :(得分:1)

我稍后可能会带一些代码回来,但这是我想到的程序:

  1. 使用StringReader
  2. 换行字符串
  3. 创建验证SAX解析器
  4. 解析文件,让SAX处理程序跟踪错误实例数
  5. 如果出现零错误则有效