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

发布于 2024-07-28 23:47:20 字数 760 浏览 5 评论 0原文

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

我读过这个问题但是他们只看到谈论替换 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();
}

谢谢!

How can I test an xml string to see if it validates against and dtd file?

I've read this question but they only see to be talking about replacing the dtd declaration on an xml file.

Person.DTD

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

Test

@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();
}

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

<逆流佳人身旁 2024-08-04 23:47:20

我可能稍后会带着一些代码回来,但我脑海中浮现的是以下过程:

  1. 用 StringReader 包装字符串
  2. 创建验证 SAX 解析器
  3. 解析文件,让 SAX 处理程序跟踪错误实例的数量
  4. 如果零错误则有效

I may come back later with some code, but here's the procedure that springs to my mind:

  1. Wrap string with StringReader
  2. Create validating SAX parser
  3. Parse file, have SAX handler track number of error instances
  4. Valid if zero errors
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文