Setting up Visual Studio for WoW XML

Microsoft Visual Studio comes with an excellent XML editor. By far, the most useful feature is that it can read an XSD file and know exactly how your XML is supposed to be structured (the only other XML editor I know of that can do this will set you back $500). This means that, for the most part, you don't have to memorize tag names, what tags can go where, attribute names, and in many circumstances, attribute values. As soon as you type the opening bracket, it will provide you with a drop-down list of all available tags that are legal given your current position in the code. Once you select a tag and hit space, you'll be presented with a list of all possible attributes for the tag. Select one, and if it's not a free-form value (like name, or val) it will present you with a list of all possible choices.

Not only does this save time, but it can also be a great learning tool. For instance, I accidentally found out that a lot of common structures can be simplified:

  

can written simply as:



Visual Studio
Chances are, you don't just have a copy of Visual Studio hanging around for your coding pleasure. Thankfully, Microsoft has released parts of VS for free. The Microsoft Visual Studio Express Editions are simplified copies of the most popular components: C++, C#, Visual Basic, SQL Server, & Visual Web Developer. Download and install whichever component you think you might get some use out of since all we're really after here is the basic editor environment. If you are a student, you can also get full versions of Visual Studio from Dreamspark, a Microsoft portal for academic software.

Be sure to set up VS as your default XML editor. For Windows XP the easiest way to do this is to right-click on any XML file, click Open With...->Choose Program, select Microsoft Visual Studio from the list (the name may be different depending on the edition you select), check Always use the selected program, and hit OK.

The Ui Tag
Now you need to change the Ui tag in your XML files to point to the XML schema. The simplest way to do this is to use the following tag:



This will pull the schema from the WoWProgramming website. If you'd rather use a local copy, you can either download that file, or extract it using Blizzard's UI extractor. Then change the location in your Ui tag from http://wowprogramming.com/FrameXML/UI.xsd to the location of the file you downloaded (e.g. "C:/Program Files/World of Warcraft/Blizzard Interface Data (enUS)/FrameXML/UI.xsd")

That's all there is to it!