private void ParseSchema()
{
Util.Log("SdlParser.ParseSchema");
// Remember the current depth
int curDepth = _XMLReader.Depth;
// Parse the target namespace first
URTNamespace parsingNamespace = ParseNamespace();
// Parse schema elements
while(_XMLReader.Depth > curDepth)
{
String elementName = _XMLReader.LocalName;
if(MatchingNamespace(s_schemaNamespaceString))
{
if(MatchingStrings(elementName, s_complexTypeString))
ParseComplexType(parsingNamespace, null);
else if(MatchingStrings(elementName, s_simpleTypeString))
ParseSimpleType(parsingNamespace, null);
else if(MatchingStrings(elementName, s_schemaString))
ParseSchema();
else if(MatchingStrings(elementName, s_elementString))
ParseElementDecl(parsingNamespace);
else if(MatchingStrings(elementName, s_importString))
ParseImport();
else
goto SkipXMLNode;
continue;
}
SkipXMLNode:
// Ignore others elements such as annotations
SkipXmlElement();
}
return;
}