Ok, so we’ve heard back from a few of you and its apparent that XOML can be a little difficult to work with especially as it had no intellisense to help create well formed XOML. In the interests of making XOML much easier to write we have created an XML Schema that you can use to validate your XOML and provide intellisense support. Please note that the schema has only been tested in Visual Studio 2010. If you have problems with it in any other IDE then please let us know.
The XML Schema for XOML can be downloaded from http://www.drmop.com/XOML.xsd
Updated versions of the Schema will also be included with the IwGame Engine from v0.35 onwards
To use the Schema in Visual Studio 2010, open your XOML file, right click somewhere on the page and select properties then go to the properties windows. Click in the Schemas box then click the small file selector to the right (this will open up all of the available XML schemas). If XOML.xsd is not already in the list then click the Add button which pops up the file select dialog. Select XOML.xsd and open it, this will place it in the XML schemas list. Now click in the Use column next to XOML.xsd and select “Use this schema” then click OK. Your document should now be validated against the XOML schema and you should have intellisense / auto-complete etc..
Note that there are a few restrictions, for example, the schema does not include support for custom actor / scene names or support for FromTemplate parameters. if you are XSD savvy enough to figure out how to add that support then please let us know (I personally have only spent one day working with XSD which was today so I’m still a little wet behind the ears). For the meantime, you may want to edit the XOML.xsd schema file and add them yourself. A quick and easy way to get the schema to recognise your custom named scenes is to edit XOML.xsd, go to the bottom of the file and you will see a group called TopLevel. Copy and paste the line that defines Scene and change the word Scene to the name of your own scene class, e.g:
<xs:element name=”Scene” type=”SceneType” />
<xs:element name=”MenuScene” type=”SceneType” />
To add a custom actor create a copy the ActorImage tag and rename the copy to your custom class name, e.g.:
<xs:element name=”ActorImage” type=”ActorImageType” />
<xs:element name=”FrogActor” type=”ActorImageType” />
For actors, you will also need to copy the same line to the ActorGroup (situated just below the TopLevel group)
Please note that this will not take into account your own custom parameters, for that you will need to add your own complex types and attributes to handle it.
Lastly, to add custom actions, go to the top of XOML.xsd to the ActionsEnum type and copy one of the existing actions, paste and replace your own action name, e.g:
<xs:enumeration value=”CustomAction1″ />
Well that’s it, hope the schema helps to make XOML more usable. Please let us know if you have any problems (don’t send me complex schema questions because I don’t have a clue :))