2011-12-02 61 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