2011-12-02 42 views
2

我在xml文档的流水线处理期间收到此错误,处理进行xslt转换。它似乎告诉我,文档在某种程度上是无效的,但文档通过了对氧气中的xsd的验证。MarkLogic:试图了解错误“节点具有复杂类型和非混合的复杂内容”

首先,错误不告诉我有问题的数据文件中的行号,只是流水线xqy文件中的行号,从我所知道的。

第二:错误对我来说在语法上是不合理的:似乎认为文档中的节点被定义为复杂类型,但文档中的内容是非混合的......为什么这么重要?大多数内容不是混合的,对吧?所以非混合内容就像我看到的那样是大多数xml中的标准。谢谢。

回答

0

该文档可能是有效的,但它不符合XSLT代码中的期望值。没有看到代码和文档,muy hunch是XSLT期望匹配的文档节点是一个元素(或类似的),但它是一个属性或文本节点。

+0

感谢埃里克。似乎我没有达到xsl转换过程;该错误消息似乎是特定于ML的,这使得事情变得非常困难,因为我无法解释它,并且它看起来没有被记录在任何地方。 – bethesdaboys

4

当某些函数需要一个更简单的值作为参数,但接收复杂的元素类型时,也会发生此错误。

实际上,在http://marklogic.markmail.org/的档案中搜索错误似乎是来自fn:data(),如果它传递了'too'复杂的值以简化它。我认为这个消息的意思是说传入的节点没有类型值。另请参见这里:http://www.w3.org/TR/xpath-functions/#func-data

如果您提供了完整的错误信息,我们也许能够帮助你..

+0

感谢grtjn为你的工作,让我开始跟踪下来,这听起来很有帮助。 – bethesdaboys