有效的XML,有效的模式。我在哪里出了错?
-
20-09-2019 - |
题
从前,我有一个DOCTYPE有效和有效的XML。我把前者对后者,CNTRL-s'd的顶部,不料:一切都因为所有应该的。现在我有一个有效的模式(定制我仍然有效XML)。我想我一样的尝试和真正的方法 - 但很可惜,没有成功。
我与每个不同的验证我用不同的错误,然而新的错误从我的浏览器提交(但有意义)。所以,我不知道我应该给最有帮助。 Validome表示:
找不到的元素 '的xs:模式' 声明。
和
以下的根元素的文档中的标记必须被良好地形成。
(但它是!)
如果这将会是有XML和模式是有用的,请不要犹豫,问,我只是想,既然它们都是W3有效的和漫长的,我会尽量让他们出来首先。我做的是把对XML的顶部的模式,并通过识别/浏览器发送。
谢谢!
解决方案
@Nona模式是一个良好的文档,所以是您的实例。但是,如果你将它们连接起来的结果是不再良好的。
如果你拥有的是:
<xs:schema ...>...</xs:schema>
<myxml ...>...</myxml>
这是没有很好地形成(无单根元素)
之所以DTD方法不同的是,内部子集是专门允许前置到根元素。所以:
<DOCTYPE myxml [
... my DTD ...
]>
<myxml ...>...</myxml>
是公形成。
不幸的是这不是完全微不足道的架构与实例相关联。您可能要看看xsi:schema-location
。
<强>更新强> 很不幸,答案将取决于你使用的软件框架。据我所知是没有包装的文档和模式,使得任何软件将接受并尝试验证的方式。这就是为什么架构比DTD的更多的努力。
下面是一个简单的网站,你可以提交两个文件和测试。
任何超出可能需要在软件方面的知识。那里将根据不同的方法是否在使用ORACLE,微软等这可以通过调用方法加载文档,加载架构,然后验证,或设置属性(如可以在Xerces的完成)来完成。
答案可能取决于你为什么这样做。如果您要提交文件的架构的所有者那么他们将probbaly有一个验证系统。如果你不得不对valiadte别人的模式,那么你将需要得到schemavalidation软件并运行此。你在MS或Unix / Java的?
更多UPDATE 强> 推荐什么是最好的方式验证对XSD文件的XML文件? 正如他们所说,没有超简单的方法。
其他提示
在黑暗中只是一个尝试,但你有没有根元素中定义的XML架构命名空间前缀?它的xmlns:XS = “http://www.w3.org/2001/XMLSchema”。如果一个命名空间前缀未绑定到一个命名空间的名称,则该文件是无效的。
在说明明显的风险,你可能要考虑,为什么元素XS的声明的原因:架构无法通过验证发现。
在第二误差表明,有一个尖括号失踪某处,或有未正确嵌套某些元素。