xml error元素或属性与QName生成不匹配:QName :: =(NCName':')?NCName

时间:2014-04-02 07:09:57

标签: java xml web-services wsdl xsd

这是我的XML:

根据决议的许多帖子的建议,检查结束标签。可能我仍然错过了一些东西。请帮忙。

这也是SOAP请求XML,我将其作为创建上述xml的源:

为什么我这样做?我需要使用WSDL文件中的内联模式验证请求XML,因此我解压缩了内联模式并创建了一个XSD文件。现在我需要一个请求XML来验证我已经创建的XSD文件。

1 个答案:

答案 0 :(得分:1)

欢迎使用Stack Overflow,以及使用XML。

你不能确切地说出问题是什么,但我想这是"这里出了什么问题?"或者"这个XML有什么问题?"

您显示的数据不是XML,因为它的格式不正确。考虑字符串<xmlns:ejb3="http://ejb3.examples.itko.com/">。我想这是一个开始标记。

在XML中,起始标记以尖括号开头和结尾,并且在其中有一个元素类型名称后跟零个或多个属性值规范或名称空间声明,彼此分开,并通过空格与元素类型名称分隔。

如果我们将字符串xmlns:ejb3="http://ejb3.examples.itko.com/"作为命名空间声明(就像在你说你复制数据的源中那样),那么你的问题是你的start-tag没有给出任何元素类型名称。 (第二个问题是数据流末尾的字符串</xmlns:ejb3>看起来像是在尝试成为结束标记,但是它使用了名称空间属性名称需要使用元素类型名称。)

另一方面,如果我们将<xmlns:ejb3作为尖括号,后跟元素类型名称,则问题是(a)元素类型名称以保留字符串&#39; xml&#39;开头。 ,XML规范现在允许,(b)元素类型名称不是由关闭尖括号或空格和属性值规范,而是由等号和带引号的字符串 - 它看起来就像缺少属性名称的零碎属性值规范一样。

使用XML基础知识教程的五分钟应该可以避免这些问题。与许多替代方案相比,XML语法非常简单,但它不是任何人天生所知的,而且您的经验表明,您不会花费任何时间来实际研究它,而无法从示例中学习它。