Using XSDE with iOS and XCode 3

From Code Synthesis Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 15:36, 27 October 2011
Boris (Talk | contribs)
(Update note on XCode 4)
← Previous diff
Revision as of 19:27, 21 March 2012
Boris (Talk | contribs)
(Using XSDE in iPhone Applications moved to Using XSDE with iOS and XCode 3)
Next diff →

Revision as of 19:27, 21 March 2012

This page is a collection of notes on using XSD/e in iPhone/iPad applications written in Objective-C/Objective-C++. If you have useful information not listed on this page, please consider adding it.

Building XSD/e runtime library for iPhone

To build the XSD/e runtime library (libxsde.a) and, optionally, examples, follow the instructions in the INSTALL file that comes with the XSD/e distribution. In particular, see the section on XCode IPhone SDK.

Note that while the instructions in the INSTALL file are based on XCode 3.X, they were also successfully used with XCode 4, as described in this mailing list thread.

Setting up Objective-C application to use XSD/e

To setup your iPhone application to use the XSD/e-generated code, you will need to do the following:

1. Compile your schemas to C++ with the xsde compiler. To ease the integration, use the following options to give the generated C++ files extension that are automatically recognized by the XCode IDE:

--hxx-suffix .h
--ixx-suffix .ipp
--cxx-suffix .cpp

2. Add the generated files to your project.

3. Add the .../xsde-x.y.z-i686-macosx/libxsde path to the include directory list (-I option) in your project.

4. Add the .../xsde-x.y.z-i686-macosx/libxsde/xsde path to the library directory list (-L option) in your project as well as link to libxsde.a (-lxsde). Alternatively, you can just add the absolute library path (.../xsde-x.y.z-i686-macosx/libxsde/xsde/libxsd.a) to link to.

5. Change the extension of Objective-C files that will be calling the XSD/e-generated code from .m to .mm. This will result in them being treated as Objective-C++ files that can contain a mixture of Objective-C and C++ code. For more information see Using C++ With Objective-C.

6. The .mm files can now make calls to the XSD/e-generated parsers/serializers as well as traverse the object model, as shown in the Getting Started Guides and examples.

Personal tools