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

How to validate ids between XML documents in XSD?

我正在尝试为 iOS 和 Android 应用程序制作一个跨平台的字符串管理系统(这样我就不必翻译这两个应用程序并且我可以重复使用一个应用程序中的字符串到另一个)。

为此,我使用以下流程:

  1. XML 存储跨平台字符串 identifiers(具有 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 强制 string 元素的 id 属性是来自所有 [=] 的“枚举”(或“引用”?) 17=] 在 identifiers.xml 文件中 ? (就像数据库中的外键)

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

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

其他可能性:

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