我有一个DTD,我需要转换为XSD(XML架构)文件.有没有免费的实用工具或简单的方法来实现这一目标?
我想使用DTD或XSD来描述我的XML文档.我已经读过XSD比DTD更好,因为它们支持命名空间和数据类型,并且DTD更老.
这是否意味着我应该只将XSD用于未来的所有需求并完全忽略DTD作为选项?我是否应该费心学习DTD的结构?
在XSD和DTD之间进行选择时,我应该考虑哪些因素?
Android上使用的XML文件(如AndroidManifest.xml或布局)的模式(DTD或XML模式)在哪里?
我了解到嵌套锚标签不符合标准的HTML.
从W3:
由A元素定义的链接和锚点不得嵌套; A元素不得包含任何其他A元素.
由于DTD将LINK元素定义为空,因此LINK元素也可以不嵌套.
看起来像在这个问题的选定答案中建议的那些替代品将比仅仅嵌套锚点更有可能产生意想不到的行为!
使用onclick事件处理程序只是为了重定向JS中的页面似乎有点过分.更不用说使用脚本解决方案会导致用户在禁用脚本时浏览时出现问题.
编辑
有趣的是,我工作的一个小提琴来证明,我已经忽略了镀铬实际上重组DOM这样:
<div id="container">
<a href="http://yahoo.com"></a>
<div class="parent">
<a href="http://yahoo.com">Parent Element</a>
<a href="http://google.com">
<div class="child">Child Element</div>
</a>
<a href="http://bing.com">
<div class="child">Other Child</div>
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我忽略了这一点,因为我看到悬停工作并将鼠标放在文本上.现在知道这一点并不一定会改变我的问题,但它确实证明它甚至不像我想象的那样工作.
我需要针对DTD描述文件验证XML字符串(而不是文件).
怎么办python?
DTD和XML Schema的优点/缺点是什么(我甚至不确定后者的官方名称是什么!)?哪个更好?为什么我们需要两种方法来做同样的事情?
编辑:我在一篇正在阅读的文章中找到了这个,这促使我提出这个问题:
为什么选择W3C XML Schema语言?
W3C XML Schema Language不是唯一的模式语言.事实上,XML规范将文档类型定义(DTD)描述为表达模式的方式.此外,JAXB参考实现的预发布版本仅适用于DTD - 也就是说,不适用于使用XML Schema Language编写的模式.但是,XML Schema Language比DTD更丰富.例如,用XML Schema Language编写的模式可以描述在DTD中无法表达(或不能轻易表达)的结构关系和数据类型.有一些工具可用于将DTD转换为W3C XML模式语言,因此如果您使用的是早期版本的JAXB参考实现中使用的基于DTD的模式,则可以使用这些工具将模式转换为XML模式语言.http://java.sun.com/developer/technicalArticles/WebServices/jaxb/#binsch
我想我想举例说明为什么XML-Schema更好(如果确实如此).
我需要帮助从这个网站安装xmllint:http://xmlsoft.org/sources/win32/
特别是,我不确定我应该下载哪个文件 - 当我点击预编译的Windows二进制文件的链接时,我被带到了几个文件的列表,不知道如何继续.
如何根据本地存储为文件的DTD验证XML文件?XML文件没有任何DOCTYPE声明(或者可能有一个应该被覆盖的声明).我看了一下这个帖子,但除了他们使用.NET之外,我怀疑这是一个很好的解决方案.
任何输入赞赏!
我试图设置xmldoc的innerxml但得到异常:引用未声明的实体
XmlDocument xmldoc = new XmlDocument();
string text = "Hello, I am text α – —"
xmldoc.InnerXml = "<p>" + text + "</p>";
Run Code Online (Sandbox Code Playgroud)
这引发了异常:
引用未声明的实体'alpha'.2号线,2号线..
我该如何解决这个问题?
我正在尝试使用JAXB取消一些我首先使用xjc创建的XML.我不想做就解组任何验证,但即使我已经停用根据与JAXB文档验证u.setSchema(null);,但这并没有阻止了FileNotFoundException,当它试图运行,并不能找到的模式被抛出.
JAXBContext jc = JAXBContext.newInstance("blast");
Unmarshaller u = jc.createUnmarshaller();
u.setSchema(null);
return u.unmarshal(blast)
Run Code Online (Sandbox Code Playgroud)
我已经看到类似的问题,通过设置apache属性http://apache.org/xml/features/validation/schema来禁用SAX解析验证false,但是我无法让Unmarshaller使用我自己的sax解析器.