internal static string PrintExpectedElements(ArrayList expected, bool getParticles)
{
if (getParticles)
{
string ContinuationString = SR.Format(SR.Sch_ContinuationString, new string[] { " " });
XmlSchemaParticle currentParticle = null;
XmlSchemaParticle nextParticle = null;
XmlQualifiedName currentQName;
ArrayList expectedNames = new ArrayList();
StringBuilder builder = new StringBuilder();
if (expected.Count == 1)
{
nextParticle = expected[0] as XmlSchemaParticle;
}
else
{
for (int i = 1; i < expected.Count; i++)
{
currentParticle = expected[i - 1] as XmlSchemaParticle;
nextParticle = expected[i] as XmlSchemaParticle;
currentQName = currentParticle.GetQualifiedName();
if (currentQName.Namespace != nextParticle.GetQualifiedName().Namespace)
{
expectedNames.Add(currentQName);
PrintNamesWithNS(expectedNames, builder);
expectedNames.Clear();
Debug.Assert(builder.Length != 0);
builder.Append(ContinuationString);
}
else
{
expectedNames.Add(currentQName);
}
}
}
//Add last one.
expectedNames.Add(nextParticle.GetQualifiedName());
PrintNamesWithNS(expectedNames, builder);
return builder.ToString();
}
else
{
return PrintNames(expected);
}
}