【发布时间】:2021-03-29 12:41:47
【问题描述】:
我正在尝试为 iOS 和 Android 应用程序制作一个跨平台的字符串管理系统(因此我不必同时翻译这两个应用程序,我可以将字符串从一个应用程序重用到另一个应用程序)。
为此,我使用以下流程:
-
XML 存储跨平台字符串标识符(可能带有
comment或iOS-only等属性)<!-- identifiers.xml --> <identifiers> <id>button_signin_facebook</id> <id ios-only="true">button_signin_apple</id> ... </identifiers> -
然后我有 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 属性是identifiers.xml 文件中所有id 的“枚举”(或“引用”?)?(就像数据库中的外键)
我是 XSD 的新手,我发现我可以在 XSD 中进行枚举,但这不是我想要的。 (标识符值需要在 XML 文件 identifiers.xml 中,而不是在模式中,因为它们不是固定的。)
【问题讨论】:
标签: php xml xsd xsd-validation xml-validation