public void LoadSCML(string path)
{
// Load document
scml.Load(path);
// Reset all data
m_Data.Reset();
// Convert from SCML to object model
if(scml.DocumentElement == null)
throw new FileLoadException("Error loading XML document");
if(!scml.DocumentElement.Name.Equals("spriter_data"))
throw new FormatException("XML document does not contain root spriter_data element");
// version info
ReadVersionInfo(scml.DocumentElement);
foreach (XmlElement child in scml.DocumentElement)
{
// meta_data
if (child.Name.Equals("meta_data"))
ReadMetaData(child, m_Data.metaData);
// folder
else if (child.Name.Equals("folder"))
ReadFolder(child);
// atlas
else if (child.Name.Equals("atlas"))
ReadAtlas(child);
// entity
else if (child.Name.Equals("entity"))
ReadEntity(child);
// character_map
else if (child.Name.Equals("character_map"))
ReadCharacterMap(child);
// document_info
else if (child.Name.Equals("document_info"))
ReadDocumentInfo(child);
}
// Find object references
FindObjectReferences();
}