如何从 XML 模式生成 Objective C 类文件?

Posted

技术标签:

【中文标题】如何从 XML 模式生成 Objective C 类文件?【英文标题】:How to generate Objective C class files from XML schema? 【发布时间】:2010-03-26 12:03:42 【问题描述】:

我有一个定义我的数据模型的 XML 模式。我现在想要从 XML 模式生成 Objective C 源文件。有谁知道如何做到这一点?

【问题讨论】:

【参考方案1】:

查看XML serialization 上的 Stack Overflow 问题,其中提到了一个类似的项目。

【讨论】:

我认为这更适合创建对象的实例,而不是首先创建类。 是的,但它可能比从头开始编写代码更容易扩展。【参考方案2】:

在不知道细节的情况下,我的直接想法可能是为此使用 xslt。例如如果你有类似的东西(我很感激

<element name="SomeEntity">
  <attribute name="someAttr" type="integer" />
  <complexType>
    <sequence>
      <element name="someOtherAttr" type="string" />
    </sequence>
  </complexType>
</entity>

创建一堆模板来翻译这个,例如

<xsl:template match="element">
  <xsl:apply-template select="." mode="header"/>
  <xsl:apply-template select="." mode="impl"/>
</xsl:template>

<xsl:template match="element" mode="header">
class <xsl:value-of select="@name"/> 
 public:
  <xsl:apply-template select="attribute" mode="header"/>

  <xsl:apply-template select="complexType/element" mode="header"/>
</xsl:template>

...

虽然如果生成的逻辑更复杂,我可能会沿着将 xml 导入对象模型并以编程方式处理它的方式,可能使用 Velocity 等模板引擎,因为它可能是复杂的逻辑xslt 很痛苦。

【讨论】:

以上是关于如何从 XML 模式生成 Objective C 类文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从网站以 xml 格式获取数据并使用 Objective-c 解析该数据以执行操作

如何使用 JAXB 从 XML 模式生成 Java 枚举?

跨度字母不会将字母从 xml 分隔到 Objective C 中的字符串

从 JSON 模式生成 XML 模式 (XSD)

如何在Objective C中使用XML解析发布带有特殊字符和泰语的字符串?

在 Objective C 中从 XML 中获取核心数据