XSD指定了一个目标名称空间,但XML没有';我也可以避免编辑吗?
第三方接口提供的XML没有XSD指定了一个目标名称空间,但XML没有';我也可以避免编辑吗?,xml,xsd,Xml,Xsd,第三方接口提供的XML没有标记,也没有名称空间引用。关联的XSD文件在schema上指定xmlns和targetNamespace,它们显然不在XML中 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="cheese" targetNamespace="cheese" elementFormDefault="qualified"> <xsd:element name =
标记,也没有名称空间引用。关联的XSD文件在schema
上指定xmlns
和targetNamespace
,它们显然不在XML中
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="cheese"
targetNamespace="cheese"
elementFormDefault="qualified">
<xsd:element name = "Something>
...
</xsd:element>
</xsd:schema>
<Something>
...
</Something>
修改标准模式的本地副本的能力确实是XSD设计部分的激励因素之一
但如果我理解正确的话,您正在使用由为XML提供XSD模式的源生成的XML,但发布不符合该模式的XML,这可能只是因为在XML中提供默认名称空间声明的一个小错误。在其他条件相同的情况下,我认为从长远来看,最好的解决方案是将这种差异告知XML源。如果他们足够关心文档以提供模式,那么组织中可能有人也看到了验证点。当然,没有保证,但你会为让世界变得更美好做一点努力
同时:是的,本地修改模式的副本,或者使用预处理器将XML包装到表单的虚拟包装器元素中
<dummy xmlns="cheese">
... existing XML goes here, minus XML declaration if any ...
</dummy>
... 现有的XML在这里,减去XML声明(如果有的话)。。。
我意识到我可以使用XSLT来修改返回的XML,但仍然想知道哪一个是更好的解决方案(或者我没有想到的第三个选项)