2012-12-31 86 views
0

我想根據XML架構綁定XForms實例。它的工作原理罰款方面,如以下情況,其中ValeurNoteType是一個xs:decimal類型的限制:orbeon:使用xml架構綁定xforms實例複雜類型

<xforms:bind nodeset="instance('note-template')"> 
    <xforms:bind nodeset="Valeur" type="ValeurNoteType"/> 
</xforms:bind> 

的XForms 1.1似乎並不支持複雜的類型在下面的示例結合,等等,其中ExamenType是一個序列:

<xforms:bind nodeset="instance('examen-template')"> 
    <xforms:bind nodeset="Examen" type="ExamenType"/> 
</xforms:bind> 

我想是爲了避免寫<xforms:bind nodeset="Titre" required="true()"/>ExamenType類型的每個元素其中有XML架構(或其他條件Min Occurs = 1,像xs:date類型的元素序列a等等)。

有沒有辦法用Orbeon做到這一點?

回答

1

的XForms 1.1是在指定type屬性如何處理明確:

「的type模型項屬性不被施加到包含子元素實例節點的type模型項屬性相關聯一個的數據類型(如在[XML Schema part 2]中定義)與實例節點的字符串值(如[XPath 1.0]中定義的)相關聯的數據類型可以從simpleType定義或simpleType的simpleContent定義獲得如果數據類型不能像剛剛描述的那樣獲得,那麼使用默認值xsd:string。「

換句話說,type屬性僅用於驗證文本內容的方式,而不是文檔的結構。

如果存在一個模式,則整個實例都會被驗證(Orbeon表單有擴展來控制它,請參閱Validation),並且在該過程中節點也可能被標記爲無效,包括由於複雜的內容驗證。但我不確定這是否有助於你的情況。無論如何,這是一個獨立於處理type屬性的過程。

+0

在我的應用程序中,我拉出了一個由模式驗證的大實例。當我發回時,驗證工作正常(如果有的話,我可以處理/顯示錯誤)。我正在尋找的是一種在我的表單實例中以「自動」方式反映架構結構和/或對其進行的更改的方法。顯然,這不是'type'屬性!非常感謝,讓我明白這一點! – cbosson