Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSD指定了一个目标名称空间,但XML没有';我也可以避免编辑吗?_Xml_Xsd - Fatal编程技术网

XSD指定了一个目标名称空间,但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 =

第三方接口提供的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 = "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,但仍然想知道哪一个是更好的解决方案(或者我没有想到的第三个选项)