我一直在试图弄清楚如何检查XML文件的语法,确保所有标签都关闭,没有随机字符等...我现在关心的是确保没有破坏的XML文件.
我一直在看一些这样的SO帖子......
...但我意识到我不想验证XML文件的结构; 我不想验证XML Schema(XSD)...我只是想检查XML语法并确定它是否正确.
我有一个没有DOCTYPE声明的XML文件,我想在阅读时使用外部DTD进行验证.
Dim x_set As Xml.XmlReaderSettings = New Xml.XmlReaderSettings()
x_set.XmlResolver = Nothing
x_set.CheckCharacters = False
x_set.ProhibitDtd = False
x = XmlTextReader.Create(sChemin, x_set)
Run Code Online (Sandbox Code Playgroud)
如何设置外部DTD的路径?你如何验证?
我需要解析一堆传入的XML文档,但它不包含DTD声明.目前我正在使用SAX Parser解析xml文档但没有DTD验证.现在我想应用DTD验证.DTD由我自己创建.如何使用自己创建的DTD(SAX解析器)验证XML文件?我找到了一些使用Transformer的教程,但都是针对DOM Parser的.
如何使用SAX Parser解析XML文件并应用DTD验证.任何帮助......
我想使用JAXB从dtd文件生成Java类.
dtd看起来像这样:
<!--Contents-->
<!ELEMENT persons (header, content) >
<!ELEMENT groups (header, content) >
<!--Header-->
<!ELEMENT header (version) >
<!ELEMENT version(#PCDATA) >
<!--Content-->
<!ELEMENT content(person, group)* >
<!--Person-->
<!ELEMENT person(p_id, p_name) >
<!ELEMENT p_id (#PCDATA) >
<!ELEMENT p_name (#PCDATA) >
<!--Group-->
<!ELEMENT group(g_id) >
<!ELEMENT g_id(#PCDATA) >
Run Code Online (Sandbox Code Playgroud)
使用JAXB生成类时,我得到以下内容:
在Content类中,检索所有人和组的方法是
public List<Object> getPersonOrGroup() {
if (personOrGroup == null) {
personOrGroup = new ArrayList<Object>();
}
return this.personOrGroup;
}
Run Code Online (Sandbox Code Playgroud)
有没有什么我可以在dtd文件中更改,所以Java类的生成将在java类中进行persons和groups分离Content,所以要检索所有人和组将是Content.getPersons()和 …