0

我希望有一个简单的解决方法,虽然我找不到任何东西。我正在处理一个 WSDL 文件,其中包含一些使用点表示法的项目:

      <xs:element form="qualified" minOccurs="0" name="Status" type="xs:string" />
      <xs:element form="qualified" minOccurs="0" name="Status.Code" type="xs:string" />
      <xs:element form="qualified" minOccurs="0" name="Status.Description" type="xs:string" />

当我使用 sudzc 生成代码时,输​​出头文件包含点符号:

      NSString* _Status;
      NSString* _Status.Code;
      NSString* _Status.Description;

这当然不能在Objective C中编译。这是生成的代码,我希望有一种简单/自动化的方法来纠正这个问题(而不是使用下划线或其他东西手动更新)。有什么建议么?

提前致谢,

达米安

4

2 回答 2

2

我有同样的问题,我的回答是非常低效的。我蛮力强制并一一更改了类名称或在您的情况下是变量名称以及它们在代码中的引用。我尝试了很多谷歌搜索但没有运气。

希望有人能帮到你。

祝你好运!

于 2012-02-27T04:34:41.153 回答
1

我认为您不会找到任何简单的方法来解决此问题。包含带有“.”的元素的 XML 模式 众所周知,自动生成的代码和试图更轻松地导航 XML 结构的语言存在问题。

我已经和我公司的数据架构师就这个问题展开了激烈的辩论,他们坚持在他们的 XML 名称中使用点表示法,尽管这使得开发人员更难编写 XML 操作代码并且代码生成器更难生成有效存根代码。

如果您有能力影响服务中使用的架构,请尽一切可能从元素名称中删除点。如果你不能改变它,你可能会被手动修改所有生成的代码所困。

于 2012-02-27T04:38:04.047 回答