private XmlSchemaParticle CannonicalizeParticle(XmlSchemaParticle particle, bool root) {
if (particle == null || particle.IsEmpty) {
return XmlSchemaParticle.Empty;
}
else if (particle is XmlSchemaElement) {
//return CannonicalizeElement((XmlSchemaElement)particle, substitution);
return particle;
}
else if (particle is XmlSchemaGroupRef) {
return CannonicalizeGroupRef((XmlSchemaGroupRef)particle, root);
}
else if (particle is XmlSchemaAll) {
return CannonicalizeAll((XmlSchemaAll)particle, root);
}
else if (particle is XmlSchemaChoice) {
return CannonicalizeChoice((XmlSchemaChoice)particle, root);
}
else if (particle is XmlSchemaSequence) {
return CannonicalizeSequence((XmlSchemaSequence)particle, root);
}
else {
return particle;
}
}