微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何验证 XSD 中 XML 文档之间的 ID?

如何解决如何验证 XSD 中 XML 文档之间的 ID?

我正在尝试为 iOS 和 Android 应用程序制作一个跨平台的字符串管理系统(因此我不必翻译这两个应用程序并且我将字符串从一个应用程序重用到另一个应用程序)。

为此,我使用以下流程:

  1. XML 存储跨平台字符串标识符(具有commentiOS-only等潜在属性,...)

    <!-- identifiers.xml -->
    <identifiers>
       <id>button_signin_facebook</id>
       <id ios-only="true">button_signin_apple</id>
       ...
    </identifiers>
    
  2. 然后我有 N 个支持的语言的 N 个翻译:

    <!-- translation_en.xml -->
    <translation lang="en">
      <string id="button_signin_facebook">Continue with Facebook</string>
      <string id="button_signin_apple">Continue with Apple ID</string>
      ...
    </translation>
    

在验证完整性后,PHP 脚本处理所有这些并为两个平台生成所有翻译文件(查看是否某些字符串未使用,查看我们是否创建了两次字符串等)

现在我的问题是: 如何为 translation_lang.xml 文件制作 XSD,强制 id 元素的 string 属性是所有 id 中的“枚举”(或“引用”?) identifiers.xml 文件(就像数据库中的外键)

我是 XSD 的新手,我发现我可以在 XSD 中进行枚举,但这不是我想要的。 (标识符值需要在 XML 文件 identifiers.xml 中而不是在架构中,因为它们不是固定的。)

解决方法

XSD 无法在单独的 XML 文档之间表达约束。

替代可能性:

  1. 用 XSLT、PHP 或其他语言编写跨文档验证约束。
  2. 将单独的 XML 文档合并为一个复合 XML 文档,以便通过 XSD 进行验证。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。