System\Xml\Schema\XsdBuilder.cs (295)
91public State CurrentState;
92public State[]? NextStates; // possible next states
99State state,
100State[]? nextStates,
139private static readonly State[] s_schemaElement = {
140State.Schema};
141private static readonly State[] s_schemaSubelements = {
142State.Annotation, State.Include, State.Import, State.Redefine,
143State.ComplexType, State.SimpleType, State.Element, State.Attribute,
144State.AttributeGroup, State.Group, State.Notation};
145private static readonly State[] s_attributeSubelements = {
146State.Annotation, State.SimpleType};
147private static readonly State[] s_elementSubelements = {
148State.Annotation, State.SimpleType, State.ComplexType,
149State.Unique, State.Key, State.KeyRef};
150private static readonly State[] s_complexTypeSubelements = {
151State.Annotation, State.SimpleContent, State.ComplexContent,
152State.GroupRef, State.All, State.Choice, State.Sequence,
153State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
154private static readonly State[] s_simpleContentSubelements = {
155State.Annotation, State.SimpleContentRestriction, State.SimpleContentExtension };
156private static readonly State[] s_simpleContentExtensionSubelements = {
157State.Annotation, State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
158private static readonly State[] s_simpleContentRestrictionSubelements = {
159State.Annotation, State.SimpleType,
160State.Enumeration, State.Length, State.MaxExclusive, State.MaxInclusive, State.MaxLength, State.MinExclusive,
161State.MinInclusive, State.MinLength, State.Pattern, State.TotalDigits, State.FractionDigits, State.WhiteSpace,
162State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
163private static readonly State[] s_complexContentSubelements = {
164State.Annotation, State.ComplexContentRestriction, State.ComplexContentExtension };
165private static readonly State[] s_complexContentExtensionSubelements = {
166State.Annotation, State.GroupRef, State.All, State.Choice, State.Sequence,
167State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
168private static readonly State[] s_complexContentRestrictionSubelements = {
169State.Annotation, State.GroupRef, State.All, State.Choice, State.Sequence,
170State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
171private static readonly State[] s_simpleTypeSubelements = {
172State.Annotation, State.SimpleTypeList, State.SimpleTypeRestriction, State.SimpleTypeUnion};
173private static readonly State[] s_simpleTypeRestrictionSubelements = {
174State.Annotation, State.SimpleType,
175State.Enumeration, State.Length, State.MaxExclusive, State.MaxInclusive, State.MaxLength, State.MinExclusive,
176State.MinInclusive, State.MinLength, State.Pattern, State.TotalDigits, State.FractionDigits, State.WhiteSpace};
177private static readonly State[] s_simpleTypeListSubelements = {
178State.Annotation, State.SimpleType};
179private static readonly State[] s_simpleTypeUnionSubelements = {
180State.Annotation, State.SimpleType};
181private static readonly State[] s_redefineSubelements = {
182State.Annotation, State.AttributeGroup, State.ComplexType, State.Group, State.SimpleType };
183private static readonly State[] s_attributeGroupSubelements = {
184State.Annotation, State.Attribute, State.AttributeGroupRef, State.AnyAttribute};
185private static readonly State[] s_groupSubelements = {
186State.Annotation, State.All, State.Choice, State.Sequence};
187private static readonly State[] s_allSubelements = {
188State.Annotation, State.Element};
189private static readonly State[] s_choiceSequenceSubelements = {
190State.Annotation, State.Element, State.GroupRef, State.Choice, State.Sequence, State.Any};
191private static readonly State[] s_identityConstraintSubelements = {
192State.Annotation, State.Selector, State.Field};
193private static readonly State[] s_annotationSubelements = {
194State.AppInfo, State.Documentation};
195private static readonly State[] s_annotatedSubelements = {
196State.Annotation};
404/* Root */ new XsdEntry( SchemaNames.Token.Empty, State.Root, s_schemaElement, null,
408/* Schema */ new XsdEntry( SchemaNames.Token.XsdSchema, State.Schema, s_schemaSubelements, s_schemaAttributes,
412/* Annotation */ new XsdEntry( SchemaNames.Token.XsdAnnotation, State.Annotation, s_annotationSubelements, s_annotationAttributes,
416/* Include */ new XsdEntry( SchemaNames.Token.XsdInclude, State.Include, s_annotatedSubelements, s_includeAttributes,
420/* Import */ new XsdEntry( SchemaNames.Token.XsdImport, State.Import, s_annotatedSubelements, s_importAttributes,
424/* Element */ new XsdEntry( SchemaNames.Token.XsdElement, State.Element, s_elementSubelements, s_elementAttributes,
428/* Attribute */ new XsdEntry( SchemaNames.Token.XsdAttribute, State.Attribute, s_attributeSubelements, s_attributeAttributes,
432/* AttributeGroup */ new XsdEntry( SchemaNames.Token.xsdAttributeGroup, State.AttributeGroup, s_attributeGroupSubelements, s_attributeGroupAttributes,
436/* AttributeGroupRef */ new XsdEntry( SchemaNames.Token.xsdAttributeGroup, State.AttributeGroupRef, s_annotatedSubelements, s_attributeGroupRefAttributes,
440/* AnyAttribute */ new XsdEntry( SchemaNames.Token.XsdAnyAttribute, State.AnyAttribute, s_annotatedSubelements, s_anyAttributeAttributes,
444/* Group */ new XsdEntry( SchemaNames.Token.XsdGroup, State.Group, s_groupSubelements, s_groupAttributes,
448/* GroupRef */ new XsdEntry( SchemaNames.Token.XsdGroup, State.GroupRef, s_annotatedSubelements, s_groupRefAttributes,
452/* All */ new XsdEntry( SchemaNames.Token.XsdAll, State.All, s_allSubelements, s_particleAttributes,
456/* Choice */ new XsdEntry( SchemaNames.Token.XsdChoice, State.Choice, s_choiceSequenceSubelements, s_particleAttributes,
460/* Sequence */ new XsdEntry( SchemaNames.Token.XsdSequence, State.Sequence, s_choiceSequenceSubelements, s_particleAttributes,
464/* Any */ new XsdEntry( SchemaNames.Token.XsdAny, State.Any, s_annotatedSubelements, s_anyAttributes,
468/* Notation */ new XsdEntry( SchemaNames.Token.XsdNotation, State.Notation, s_annotatedSubelements, s_notationAttributes,
472/* SimpleType */ new XsdEntry( SchemaNames.Token.XsdSimpleType, State.SimpleType, s_simpleTypeSubelements, s_simpleTypeAttributes,
476/* ComplexType */ new XsdEntry( SchemaNames.Token.XsdComplexType, State.ComplexType, s_complexTypeSubelements, s_complexTypeAttributes,
480/* ComplexContent */ new XsdEntry( SchemaNames.Token.XsdComplexContent, State.ComplexContent, s_complexContentSubelements, s_complexContentAttributes,
484/* ComplexContentRestriction */ new XsdEntry( SchemaNames.Token.XsdComplexContentRestriction, State.ComplexContentRestriction, s_complexContentRestrictionSubelements, s_complexContentRestrictionAttributes,
488/* ComplexContentExtension */ new XsdEntry( SchemaNames.Token.XsdComplexContentExtension, State.ComplexContentExtension, s_complexContentExtensionSubelements, s_complexContentExtensionAttributes,
492/* SimpleContent */ new XsdEntry( SchemaNames.Token.XsdSimpleContent, State.SimpleContent, s_simpleContentSubelements, s_simpleContentAttributes,
496/* SimpleContentExtension */ new XsdEntry( SchemaNames.Token.XsdSimpleContentExtension, State.SimpleContentExtension, s_simpleContentExtensionSubelements, s_simpleContentExtensionAttributes,
500/* SimpleContentRestriction */ new XsdEntry( SchemaNames.Token.XsdSimpleContentRestriction, State.SimpleContentRestriction, s_simpleContentRestrictionSubelements, s_simpleContentRestrictionAttributes,
504/* SimpleTypeUnion */ new XsdEntry( SchemaNames.Token.XsdSimpleTypeUnion, State.SimpleTypeUnion, s_simpleTypeUnionSubelements, s_simpleTypeUnionAttributes,
508/* SimpleTypeList */ new XsdEntry( SchemaNames.Token.XsdSimpleTypeList, State.SimpleTypeList, s_simpleTypeListSubelements, s_simpleTypeListAttributes,
512/* SimpleTypeRestriction */ new XsdEntry( SchemaNames.Token.XsdSimpleTypeRestriction, State.SimpleTypeRestriction, s_simpleTypeRestrictionSubelements, s_simpleTypeRestrictionAttributes,
516/* Unique */ new XsdEntry( SchemaNames.Token.XsdUnique, State.Unique, s_identityConstraintSubelements, s_identityConstraintAttributes,
520/* Key */ new XsdEntry( SchemaNames.Token.XsdKey, State.Key, s_identityConstraintSubelements, s_identityConstraintAttributes,
524/* KeyRef */ new XsdEntry( SchemaNames.Token.XsdKeyref, State.KeyRef, s_identityConstraintSubelements, s_identityConstraintAttributes,
528/* Selector */ new XsdEntry( SchemaNames.Token.XsdSelector, State.Selector, s_annotatedSubelements, s_selectorAttributes,
532/* Field */ new XsdEntry( SchemaNames.Token.XsdField, State.Field, s_annotatedSubelements, s_fieldAttributes,
536/* MinExclusive */ new XsdEntry( SchemaNames.Token.XsdMinExclusive, State.MinExclusive, s_annotatedSubelements, s_facetAttributes,
540/* MinInclusive */ new XsdEntry( SchemaNames.Token.XsdMinInclusive, State.MinInclusive, s_annotatedSubelements, s_facetAttributes,
544/* MaxExclusive */ new XsdEntry( SchemaNames.Token.XsdMaxExclusive, State.MaxExclusive, s_annotatedSubelements, s_facetAttributes,
548/* MaxInclusive */ new XsdEntry( SchemaNames.Token.XsdMaxInclusive, State.MaxInclusive, s_annotatedSubelements, s_facetAttributes,
552/* TotalDigits */ new XsdEntry( SchemaNames.Token.XsdTotalDigits, State.TotalDigits, s_annotatedSubelements, s_facetAttributes,
556/* FractionDigits */ new XsdEntry( SchemaNames.Token.XsdFractionDigits, State.FractionDigits, s_annotatedSubelements, s_facetAttributes,
560/* Length */ new XsdEntry( SchemaNames.Token.XsdLength, State.Length, s_annotatedSubelements, s_facetAttributes,
564/* MinLength */ new XsdEntry( SchemaNames.Token.XsdMinLength, State.MinLength, s_annotatedSubelements, s_facetAttributes,
568/* MaxLength */ new XsdEntry( SchemaNames.Token.XsdMaxLength, State.MaxLength, s_annotatedSubelements, s_facetAttributes,
572/* Enumeration */ new XsdEntry( SchemaNames.Token.XsdEnumeration, State.Enumeration, s_annotatedSubelements, s_facetAttributes,
576/* Pattern */ new XsdEntry( SchemaNames.Token.XsdPattern, State.Pattern, s_annotatedSubelements, s_facetAttributes,
580/* WhiteSpace */ new XsdEntry( SchemaNames.Token.XsdWhitespace, State.WhiteSpace, s_annotatedSubelements, s_facetAttributes,
584/* AppInfo */ new XsdEntry( SchemaNames.Token.XsdAppInfo, State.AppInfo, null, s_appinfoAttributes,
588/* Documentation */ new XsdEntry( SchemaNames.Token.XsdDocumentation, State.Documentation, null, s_documentationAttributes,
592/* Redefine */ new XsdEntry( SchemaNames.Token.XsdRedefine, State.Redefine, s_redefineSubelements, s_redefineAttributes,
846private XmlSchemaObject GetContainer(State state)
851case State.Root:
853case State.Schema:
856case State.Annotation:
859case State.Include:
862case State.Import:
865case State.Element:
868case State.Attribute:
871case State.AttributeGroup:
874case State.AttributeGroupRef:
877case State.AnyAttribute:
880case State.Group:
883case State.GroupRef:
886case State.All:
889case State.Choice:
892case State.Sequence:
895case State.Any:
898case State.Notation:
901case State.SimpleType:
904case State.ComplexType:
907case State.ComplexContent:
910case State.ComplexContentExtension:
913case State.ComplexContentRestriction:
916case State.SimpleContent:
919case State.SimpleContentExtension:
922case State.SimpleContentRestriction:
925case State.SimpleTypeUnion:
928case State.SimpleTypeList:
931case State.SimpleTypeRestriction:
934case State.Unique:
935case State.Key:
936case State.KeyRef:
939case State.Selector:
940case State.Field:
943case State.MinExclusive:
944case State.MinInclusive:
945case State.MaxExclusive:
946case State.MaxInclusive:
947case State.TotalDigits:
948case State.FractionDigits:
949case State.Length:
950case State.MinLength:
951case State.MaxLength:
952case State.Enumeration:
953case State.Pattern:
954case State.WhiteSpace:
957case State.AppInfo:
960case State.Documentation:
963case State.Redefine:
973private void SetContainer(State state, object container)
977case State.Root:
979case State.Schema:
981case State.Annotation:
984case State.Include:
987case State.Import:
990case State.Element:
993case State.Attribute:
996case State.AttributeGroup:
999case State.AttributeGroupRef:
1002case State.AnyAttribute:
1005case State.Group:
1008case State.GroupRef:
1011case State.All:
1014case State.Choice:
1017case State.Sequence:
1020case State.Any:
1023case State.Notation:
1026case State.SimpleType:
1029case State.ComplexType:
1032case State.ComplexContent:
1035case State.ComplexContentExtension:
1038case State.ComplexContentRestriction:
1041case State.SimpleContent:
1044case State.SimpleContentExtension:
1047case State.SimpleContentRestriction:
1050case State.SimpleTypeUnion:
1053case State.SimpleTypeList:
1056case State.SimpleTypeRestriction:
1059case State.Unique:
1060case State.Key:
1061case State.KeyRef:
1064case State.Selector:
1065case State.Field:
1068case State.MinExclusive:
1069case State.MinInclusive:
1070case State.MaxExclusive:
1071case State.MaxInclusive:
1072case State.TotalDigits:
1073case State.FractionDigits:
1074case State.Length:
1075case State.MinLength:
1076case State.MaxLength:
1077case State.Enumeration:
1078case State.Pattern:
1079case State.WhiteSpace:
1082case State.AppInfo:
1085case State.Documentation:
1088case State.Redefine: