Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BuildParticleContentModel()

bool System.Xml.Schema.Compiler.BuildParticleContentModel ( ParticleContentValidator contentValidator,
XmlSchemaParticle particle )
inlineprivate

Definition at line 2591 of file Compiler.cs.

2592 {
2593 bool result = false;
2594 if (particle is XmlSchemaElement)
2595 {
2596 XmlSchemaElement xmlSchemaElement = (XmlSchemaElement)particle;
2597 contentValidator.AddName(xmlSchemaElement.QualifiedName, xmlSchemaElement);
2598 }
2599 else if (particle is XmlSchemaAny)
2600 {
2601 result = true;
2602 XmlSchemaAny xmlSchemaAny = (XmlSchemaAny)particle;
2603 contentValidator.AddNamespaceList(xmlSchemaAny.NamespaceList, xmlSchemaAny);
2604 }
2605 else if (particle is XmlSchemaGroupBase)
2606 {
2607 XmlSchemaObjectCollection items = ((XmlSchemaGroupBase)particle).Items;
2608 bool flag = particle is XmlSchemaChoice;
2609 contentValidator.OpenGroup();
2610 bool flag2 = true;
2611 for (int i = 0; i < items.Count; i++)
2612 {
2613 if (flag2)
2614 {
2615 flag2 = false;
2616 }
2617 else if (flag)
2618 {
2619 contentValidator.AddChoice();
2620 }
2621 else
2622 {
2623 contentValidator.AddSequence();
2624 }
2625 result = BuildParticleContentModel(contentValidator, (XmlSchemaParticle)items[i]);
2626 }
2627 contentValidator.CloseGroup();
2628 }
2629 if (!(particle.MinOccurs == 1m) || !(particle.MaxOccurs == 1m))
2630 {
2631 if (particle.MinOccurs == 0m && particle.MaxOccurs == 1m)
2632 {
2633 contentValidator.AddQMark();
2634 }
2635 else if (particle.MinOccurs == 0m && particle.MaxOccurs == decimal.MaxValue)
2636 {
2637 contentValidator.AddStar();
2638 }
2639 else if (particle.MinOccurs == 1m && particle.MaxOccurs == decimal.MaxValue)
2640 {
2641 contentValidator.AddPlus();
2642 }
2643 else
2644 {
2645 contentValidator.AddLeafRange(particle.MinOccurs, particle.MaxOccurs);
2646 }
2647 }
2648 return result;
2649 }
bool BuildParticleContentModel(ParticleContentValidator contentValidator, XmlSchemaParticle particle)
Definition Compiler.cs:2591

References System.Xml.Schema.Compiler.BuildParticleContentModel(), System.Collections.CollectionBase.Count, System.Xml.Schema.XmlSchemaParticle.MaxOccurs, and System.Xml.Schema.XmlSchemaParticle.MinOccurs.

Referenced by System.Xml.Schema.Compiler.BuildParticleContentModel(), and System.Xml.Schema.Compiler.CompileComplexContent().