private void PreprocessLocalElement(XmlSchemaElement element) { if (element.Name != null) { this.ValidateNameAttribute(element); this.PreprocessElementContent(element); element.SetQualifiedName(new XmlQualifiedName(element.Name, ((element.Form == XmlSchemaForm.Qualified) || ((element.Form == XmlSchemaForm.None) && (this.elementFormDefault == XmlSchemaForm.Qualified))) ? this.targetNamespace : null)); } else { this.PreprocessAnnotation(element); if (element.RefName.IsEmpty) { base.SendValidationEvent("Sch_ElementNameRef", element); } else { this.ValidateQNameAttribute(element, "ref", element.RefName); } if (((!element.SchemaTypeName.IsEmpty || element.HasAbstractAttribute) || ((element.Block != XmlSchemaDerivationMethod.None) || (element.SchemaType != null))) || ((element.HasConstraints || (element.DefaultValue != null)) || (((element.Form != XmlSchemaForm.None) || (element.FixedValue != null)) || element.HasNillableAttribute))) { base.SendValidationEvent("Sch_InvalidElementRef", element); } if ((element.DefaultValue != null) && (element.FixedValue != null)) { base.SendValidationEvent("Sch_DefaultFixedAttributes", element); } element.SetQualifiedName(element.RefName); } if (element.MinOccurs > element.MaxOccurs) { element.MinOccurs = 0M; base.SendValidationEvent("Sch_MinGtMax", element); } if (element.HasAbstractAttribute) { base.SendValidationEvent("Sch_ForbiddenAttribute", "abstract", element); } if (element.Final != XmlSchemaDerivationMethod.None) { base.SendValidationEvent("Sch_ForbiddenAttribute", "final", element); } if (!element.SubstitutionGroup.IsEmpty) { base.SendValidationEvent("Sch_ForbiddenAttribute", "substitutionGroup", element); } this.ValidateIdAttribute(element); }
private void PreprocessElement(XmlSchemaElement element) { if (element.Name != null) { this.ValidateNameAttribute(element); element.SetQualifiedName(new XmlQualifiedName(element.Name, this.targetNamespace)); } else { base.SendValidationEvent("Sch_MissRequiredAttribute", "name", element); } this.PreprocessElementContent(element); if (element.Final == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else if (element.Final == XmlSchemaDerivationMethod.None) { if (this.finalDefault == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else { element.SetFinalResolved(this.finalDefault & (XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension)); } } else { if ((element.Final & ~(XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension)) != XmlSchemaDerivationMethod.Empty) { base.SendValidationEvent("Sch_InvalidElementFinalValue", element); } element.SetFinalResolved(element.Final & (XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension)); } if (element.Form != XmlSchemaForm.None) { base.SendValidationEvent("Sch_ForbiddenAttribute", "form", element); } if (element.MinOccursString != null) { base.SendValidationEvent("Sch_ForbiddenAttribute", "minOccurs", element); } if (element.MaxOccursString != null) { base.SendValidationEvent("Sch_ForbiddenAttribute", "maxOccurs", element); } if (!element.SubstitutionGroup.IsEmpty) { this.ValidateQNameAttribute(element, "type", element.SubstitutionGroup); } this.ValidateIdAttribute(element); }
private void PreprocessElement(XmlSchemaElement element) { if (element.Name != null) { ValidateNameAttribute(element); element.SetQualifiedName(new XmlQualifiedName(element.Name, this.targetNamespace)); } else { SendValidationEvent(Res.Sch_MissRequiredAttribute, "name", element); } PreprocessElementContent(element); if (element.Final == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else if (element.Final == XmlSchemaDerivationMethod.None) { if (this.finalDefault == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else { element.SetFinalResolved(this.finalDefault & elementFinalAllowed); } } else { if ((element.Final & ~elementFinalAllowed) != 0) { SendValidationEvent(Res.Sch_InvalidElementFinalValue, element); } element.SetFinalResolved(element.Final & elementFinalAllowed); } if (element.Form != XmlSchemaForm.None) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "form", element); } if (element.MinOccursString != null) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "minOccurs", element); } if (element.MaxOccursString != null) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "maxOccurs", element); } if (!element.SubstitutionGroup.IsEmpty) { ValidateQNameAttribute(element, "type", element.SubstitutionGroup); XmlSchemaSubstitutionGroup substitutionGroup = (XmlSchemaSubstitutionGroup)this.schema.Examplars[element.SubstitutionGroup]; if (substitutionGroup == null) { substitutionGroup = new XmlSchemaSubstitutionGroup(); substitutionGroup.Examplar = element.SubstitutionGroup; this.schema.Examplars.Add(element.SubstitutionGroup, substitutionGroup); } if (substitutionGroup.Members[element.QualifiedName] == null) { substitutionGroup.Members.Add(element.QualifiedName, element); } } ValidateIdAttribute(element); }
private void PreprocessLocalElement(XmlSchemaElement element) { if (element.Name != null) { // name ValidateNameAttribute(element); PreprocessElementContent(element); element.SetQualifiedName(new XmlQualifiedName(element.Name, (element.Form == XmlSchemaForm.Qualified || (element.Form == XmlSchemaForm.None && this.elementFormDefault == XmlSchemaForm.Qualified))? this.targetNamespace : null)); } else { // ref PreprocessAnnotation(element); //Check annotation child for ref and set parent if (element.RefName.IsEmpty) { SendValidationEvent(Res.Sch_ElementNameRef, element); } else { ValidateQNameAttribute(element, "ref", element.RefName); } if (!element.SchemaTypeName.IsEmpty || element.HasAbstractAttribute || element.Block != XmlSchemaDerivationMethod.None || element.SchemaType != null || element.HasConstraints || element.DefaultValue != null || element.Form != XmlSchemaForm.None || element.FixedValue != null || element.HasNillableAttribute) { SendValidationEvent(Res.Sch_InvalidElementRef, element); } if (element.DefaultValue != null && element.FixedValue != null) { SendValidationEvent(Res.Sch_DefaultFixedAttributes, element); } element.SetQualifiedName(element.RefName); } if (element.MinOccurs > element.MaxOccurs) { element.MinOccurs = decimal.Zero; SendValidationEvent(Res.Sch_MinGtMax, element); } if(element.HasAbstractAttribute) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "abstract", element); } if (element.Final != XmlSchemaDerivationMethod.None) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "final", element); } if (!element.SubstitutionGroup.IsEmpty) { SendValidationEvent(Res.Sch_ForbiddenAttribute, "substitutionGroup", element); } ValidateIdAttribute(element); }
private void PreprocessElement(XmlSchemaElement element) { if (element.Name != null) { ValidateNameAttribute(element); element.SetQualifiedName(new XmlQualifiedName(element.Name, _targetNamespace)); } else { SendValidationEvent(SR.Sch_MissRequiredAttribute, "name", element); } PreprocessElementContent(element); if (element.Final == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else if (element.Final == XmlSchemaDerivationMethod.None) { if (_finalDefault == XmlSchemaDerivationMethod.All) { element.SetFinalResolved(XmlSchemaDerivationMethod.All); } else { element.SetFinalResolved(_finalDefault & elementFinalAllowed); } } else { if ((element.Final & ~elementFinalAllowed) != 0) { SendValidationEvent(SR.Sch_InvalidElementFinalValue, element); } element.SetFinalResolved(element.Final & elementFinalAllowed); } if (element.Form != XmlSchemaForm.None) { SendValidationEvent(SR.Sch_ForbiddenAttribute, "form", element); } if (element.MinOccursString != null) { SendValidationEvent(SR.Sch_ForbiddenAttribute, "minOccurs", element); } if (element.MaxOccursString != null) { SendValidationEvent(SR.Sch_ForbiddenAttribute, "maxOccurs", element); } if (!element.SubstitutionGroup.IsEmpty) { ValidateQNameAttribute(element, "type", element.SubstitutionGroup); } ValidateIdAttribute(element); }