使用PHP和XSD错误进行XML验证

时间:2013-04-09 20:44:33

标签: php xml xsd libxml2

我不会说英语,所以请原谅我。 我正在尝试使用PHP使用xsd验证xml文件,但不起作用!

首先,我致电libxml_use_internal_errors(true);以获取错误。

然后我致电$xmlDomDocument->schemaValidate($pathFileXSD),返回false。所以我得到了libxml_get_errors()函数的错误。

消息错误说:

Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'type': References from this schema to components in the namespace 'http://www.betha.com.br/e-nota-contribuinte-ws/shema/nfse_v01.xsd' are not allowed, since not indicated by an import statement. in file:///C:/v_59/httpdocs/arquivos_imobiliaria/betha/nfse_v01.xsd on line 273

我不明白邮件错误,是XSD文件上的错误?但这是不可能的,因为XSD是Web服务的一部分。我感谢任何帮助。对不起英文。

我使用PHP 5.3.1和libxml2.7.6

1 个答案:

答案 0 :(得分:0)

  

XSD文件是否有错误?

是和否。代码$xmlDomDocument->schemaValidate($pathFileXSD);在实际加载该文件时遇到问题。就这些。它并不意味着xsd文件通常有错误,只是PHP库无法加载它而没有错误。

  

但这是不可能的,因为XSD是Web服务的一部分。

如您所见,该Web服务的XSD文件与PHP中的DOMDocument库不兼容。收听错误消息并联系Web服务的技术支持,并与他们讨论问题。