【问题标题】:Using schema annotations in Xforms在 Xforms 中使用模式注释
【发布时间】:2021-12-16 04:54:14
【问题描述】:

(我正在使用 Orbeon Forms 2019.2.0.201912301747 CE)。我有一堆 XForms,它们的模式位于 orbeons“WEB-INF\lib”中的 JAR 文件中。 (我能够使用“oxf:”协议获取单个模式)。 XML Schema 具有“annotations/documentation”和“annotations/appInfo”元素(供应用程序使用),我发誓过去我已经阅读过如何在 XForms 中访问这些,但在线搜索我再也找不到任何有关它的信息!我想知道是否可以在架构中使用“appInfo”来存储呈现给用户的文本(​​xforms 警报或提示),而不是将其分解为单独的 xml 文件。 (原因是架构的后续版本可能会更改此文本,XSD 文档员可以获取此信息。)

我记得这很简单。这里有人这样做吗?它可以与 Orbeon 一起使用吗?

【问题讨论】:

    标签: orbeon


    【解决方案1】:

    想到的可能性是将 XML Schema 加载到 XForms 实例中。这是可能的,因为 XML Schema 也是 XML 格式的。然后,您可以在标签、提示等中使用 XPath 引用 Schema 的各个部分。当然,您只需要知道 XML Schema 文件中这些元素的路径即可。

    【讨论】:

    • 我确实找到了那个解决方案,而且它有效。 (我找到了一个查询模式实例的 Orbeon 示例)。但是,这有点麻烦,需要很长的路径(至少对于我的模式而言)。我仍然不确定它是否比仅使用 XML 文件有任何优势,我在想的是,出于文档原因,在模式中包含这些信息可能会更好。 (我也为“appInfo”内容创建了自己的架构)。我希望可能有一个 xpath 函数可以将架构中的路径获取到元素/类型的定义,但似乎没有。
    • 很好奇为什么你的路径很长?你有例子吗?
    • 好吧,聚会,因为我想通过创建一个可以导入我的模式的命名空间来尝试“标准化”appInfo。所以我有类似“$scheminstance/content//xs:element[name='elname']/xs:annotation/xs:appInfo/xai:xf_info/xai:help”之类的东西,其中“xai”是命名空间。
    • 只是想知道,如果 xforms 处理器必须获取引用字段的架构信息,那么理论上 xpath 函数是否可以获取该元素的应用程序信息?我意识到在许多模式中,类型将在元素之外定义,因此您实际上可以为元素和类型设置不同的 appinfo。不知道有多少人会觉得这很有用。
    • 我们必须查看 XML Schema 处理器的源代码,看看它是否暴露,但我不知道。
    猜你喜欢
    • 2014-11-03
    • 2014-10-27
    • 2011-04-22
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多