void ParceXsdSchemaSequence(XmlSchemaSequence sequence, xsdType xsdtype) { sequence.Items.ForEach(seqItem => { var schEl = seqItem as XmlSchemaElement; var schAny = seqItem as XmlSchemaAny; if (schEl != null) { xsdtype.Content.Add(ParceXsdElement(schEl, ElementTypes.sequence)); } if (schAny != null) { } }); }
void ParceXsdSchemaChoise(XmlSchemaChoice choise, xsdType xsdtype) { choise.Items.ForEach(chItem => { var schEl = chItem as XmlSchemaElement; var schAny = chItem as XmlSchemaAny; if (schEl != null) { xsdtype.Content.Add(ParceXsdElement(schEl, ElementTypes.choise)); } if (schAny != null) { } }); }
xsdType ParceXsdComplexType(XmlSchemaComplexType complexType) { xsdType xsdtype = new xsdType(); xsdtype.ContentType = ContentTypes.complexType; xsdtype.Name = complexType.Name; var sequence = complexType.Particle as XmlSchemaSequence; var choice = complexType.Particle as XmlSchemaChoice; if (sequence != null) { ParceXsdSchemaSequence(sequence, xsdtype); } if (choice != null) { ParceXsdSchemaChoise(choice, xsdtype); } return(xsdtype); }
xsdType ParceXsdSimpleType(XmlSchemaSimpleType simpleType) { xsdType xsdtype = new xsdType(); xsdtype.ContentType = ContentTypes.simpleType; xsdtype.Name = simpleType.Name; var simplerestrict = simpleType.Content as XmlSchemaSimpleTypeRestriction; var simpleunion = simpleType.Content as XmlSchemaSimpleTypeUnion; var simplelist = simpleType.Content as XmlSchemaSimpleTypeList; if (simplerestrict != null) { xsdtype.QName = simplerestrict.BaseTypeName; //xsdtype.Name = simplerestrict.BaseTypeName.Name; simplerestrict.Facets.ForEach(facet => { var enumFacet = facet as System.Xml.Schema.XmlSchemaEnumerationFacet; var maxExclusiveFacet = facet as System.Xml.Schema.XmlSchemaMaxExclusiveFacet; var minExclusiveFacet = facet as System.Xml.Schema.XmlSchemaMinExclusiveFacet; var maxInclusiveFacetFacet = facet as System.Xml.Schema.XmlSchemaMaxInclusiveFacet; var minInclusiveFacetFacet = facet as System.Xml.Schema.XmlSchemaMinInclusiveFacet; var fractionDigitsFacet = facet as System.Xml.Schema.XmlSchemaFractionDigitsFacet; var maxLengthFacet = facet as System.Xml.Schema.XmlSchemaMaxLengthFacet; var minLengthFacet = facet as System.Xml.Schema.XmlSchemaMinLengthFacet; var numericFacet = facet as System.Xml.Schema.XmlSchemaNumericFacet; var patternFacet = facet as System.Xml.Schema.XmlSchemaPatternFacet; var totalDigitsFacet = facet as System.Xml.Schema.XmlSchemaTotalDigitsFacet; if (enumFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(enumFacet.Value, SchemaParser.SimpleTypes.Enumeration)); } if (maxExclusiveFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxExclusiveFacet.Value, SchemaParser.SimpleTypes.MaxExclusive)); } if (minExclusiveFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minExclusiveFacet.Value, SchemaParser.SimpleTypes.MinExclusive)); } if (maxInclusiveFacetFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxInclusiveFacetFacet.Value, SchemaParser.SimpleTypes.MaxInclusive)); } if (minInclusiveFacetFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minInclusiveFacetFacet.Value, SchemaParser.SimpleTypes.MinInclusive)); } if (fractionDigitsFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(fractionDigitsFacet.Value, SchemaParser.SimpleTypes.FractionDigits)); } if (maxLengthFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxLengthFacet.Value, SchemaParser.SimpleTypes.MaxLength)); } if (minLengthFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minLengthFacet.Value, SchemaParser.SimpleTypes.MinLength)); } if (numericFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(numericFacet.Value, SchemaParser.SimpleTypes.Numeric)); } if (patternFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(patternFacet.Value, SchemaParser.SimpleTypes.Pattern)); } if (totalDigitsFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(totalDigitsFacet.Value, SchemaParser.SimpleTypes.TotalDigits)); } }); } if (simpleunion != null) { //throw new Exception("different type"); } if (simplelist != null) { //throw new Exception("different type"); } return(xsdtype); }
xsdType ParceXsdComplexType(XmlSchemaComplexType complexType) { xsdType xsdtype = new xsdType(); xsdtype.ContentType = ContentTypes.complexType; xsdtype.Name = complexType.Name; var sequence = complexType.Particle as XmlSchemaSequence; var choice = complexType.Particle as XmlSchemaChoice; if (sequence != null) { ParceXsdSchemaSequence(sequence, xsdtype); } if (choice != null) { ParceXsdSchemaChoise(choice, xsdtype); } return xsdtype; }
xsdType ParceXsdSimpleType(XmlSchemaSimpleType simpleType) { xsdType xsdtype = new xsdType(); xsdtype.ContentType = ContentTypes.simpleType; xsdtype.Name = simpleType.Name; var simplerestrict = simpleType.Content as XmlSchemaSimpleTypeRestriction; var simpleunion = simpleType.Content as XmlSchemaSimpleTypeUnion; var simplelist = simpleType.Content as XmlSchemaSimpleTypeList; if (simplerestrict != null) { xsdtype.QName = simplerestrict.BaseTypeName; //xsdtype.Name = simplerestrict.BaseTypeName.Name; simplerestrict.Facets.ForEach(facet => { var enumFacet = facet as System.Xml.Schema.XmlSchemaEnumerationFacet; var maxExclusiveFacet = facet as System.Xml.Schema.XmlSchemaMaxExclusiveFacet; var minExclusiveFacet = facet as System.Xml.Schema.XmlSchemaMinExclusiveFacet; var maxInclusiveFacetFacet = facet as System.Xml.Schema.XmlSchemaMaxInclusiveFacet; var minInclusiveFacetFacet = facet as System.Xml.Schema.XmlSchemaMinInclusiveFacet; var fractionDigitsFacet = facet as System.Xml.Schema.XmlSchemaFractionDigitsFacet; var maxLengthFacet = facet as System.Xml.Schema.XmlSchemaMaxLengthFacet; var minLengthFacet = facet as System.Xml.Schema.XmlSchemaMinLengthFacet; var numericFacet = facet as System.Xml.Schema.XmlSchemaNumericFacet; var patternFacet = facet as System.Xml.Schema.XmlSchemaPatternFacet; var totalDigitsFacet = facet as System.Xml.Schema.XmlSchemaTotalDigitsFacet; if (enumFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(enumFacet.Value, SchemaParser.SimpleTypes.Enumeration)); } if (maxExclusiveFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxExclusiveFacet.Value, SchemaParser.SimpleTypes.MaxExclusive)); } if (minExclusiveFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minExclusiveFacet.Value, SchemaParser.SimpleTypes.MinExclusive)); } if (maxInclusiveFacetFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxInclusiveFacetFacet.Value, SchemaParser.SimpleTypes.MaxInclusive)); } if (minInclusiveFacetFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minInclusiveFacetFacet.Value, SchemaParser.SimpleTypes.MinInclusive)); } if (fractionDigitsFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(fractionDigitsFacet.Value, SchemaParser.SimpleTypes.FractionDigits)); } if (maxLengthFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(maxLengthFacet.Value, SchemaParser.SimpleTypes.MaxLength)); } if (minLengthFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(minLengthFacet.Value, SchemaParser.SimpleTypes.MinLength)); } if (numericFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(numericFacet.Value, SchemaParser.SimpleTypes.Numeric)); } if (patternFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(patternFacet.Value, SchemaParser.SimpleTypes.Pattern)); } if (totalDigitsFacet != null) { xsdtype.SimpleValues.Add(new SimpleValue(totalDigitsFacet.Value, SchemaParser.SimpleTypes.TotalDigits)); } }); } if (simpleunion != null) { //throw new Exception("different type"); } if (simplelist != null) { //throw new Exception("different type"); } return xsdtype; }