private object GetAttributeDefaultValue (XmlSchemaAttribute attr)
{
#if BUGGY_MS_COMPATIBLE
if (attr == null)
return null;
else if (attr.RefName != XmlQualifiedName.Empty) {
XmlSchemaAttribute referenced = schema.Attributes [attr.RefName] as XmlSchemaAttribute;
if (referenced != null)
return referenced.DefaultValue;
else
return null;
}
if (attr.DefaultValue != null)
return attr.DefaultValue;
return attr.FixedValue;
#else
if (attr.DefaultValue != null)
return attr.DefaultValue;
else if (attr.FixedValue != null)
return attr.FixedValue;
else if (attr.RefName == XmlQualifiedName.Empty)
return null;
XmlSchemaAttribute referenced = schema.Attributes [attr.RefName] as XmlSchemaAttribute;
if (referenced == null) // considering missing sub components
return null;
if (referenced.DefaultValue != null)
return referenced.DefaultValue;
return referenced.FixedValue;
#endif
}
}