Select ODK动态选择数据库,如何处理空列表

Select ODK动态选择数据库,如何处理空列表,select,odk,Select,Odk,我有一个ODK表单,它被配置为从数据库获取数据列表,并将该数据列表用于选择 问题是,当来自数据库的查询返回空字符串时,我无法显示错误,相反,ODK表单在加载时崩溃。我试过这个 <instance id="books"> <list> <g:if test="${Book.list()}"> <g:each in="${Book.list()}" var="book">

我有一个ODK表单,它被配置为从数据库获取数据列表,并将该数据列表用于
选择

问题是,当来自数据库的查询返回空字符串时,我无法显示错误,相反,ODK表单在加载时崩溃。我试过这个

<instance id="books">
    <list>
        <g:if test="${Book.list()}">
            <g:each in="${Book.list()}" var="book">
                <book>
                    <id>${book.id}</id>
                    <name>${book.name?.encodeAsHTML()}</name>
                </book>
            </g:each>
        </g:if>
        <g:else>
            <book>
                <id></id>
                <name></name>
            </book>
        </g:else>
    </list>
</instance>

${book.id}
${book.name?.encodeAsHTML()}
它创建了一个id为空、名称为空的xml。这确保了ODK在加载时不会崩溃

但是由于我不希望用户选择空的
书籍
选项,我在
绑定节点集
部分添加了一个约束

因此,现在当用户试图通过图书选择部分时,ODK表单不允许它,但是它没有抛出我提供的约束消息,而是抛出这个错误

不知道xml值!可能所选内容仅存储为索引,尚未链接到formdef?