public override void WriteXmlSchemaType(XmlWriter xw, string xmlns)
{
xw.WriteStartElement("complexType", XmlSchemaUtil.SCHEMA_NS);
if (Name != null) xw.WriteAttributeString("name", Name);
xw.WriteStartElement("sequence", XmlSchemaUtil.SCHEMA_NS);
foreach (MemberDef member in Members)
{
xw.WriteStartElement("element", XmlSchemaUtil.SCHEMA_NS);
xw.WriteAttributeString("name", member.Name);
TypeDef td = ParentTypeSet.GetTypeDef(member.TypeName);
if (td.IsSimpleType)
{
xw.WriteAttributeString("type", "xs:" + td.Name);
if (member.IsRequired)
xw.WriteAttributeString("nillable", "false");
}
else
{
if (string.IsNullOrEmpty(xmlns))
xw.WriteAttributeString("type", td.Name);
else
{
string prf = xw.LookupPrefix(xmlns);
xw.WriteAttributeString("type", string.Format("{0}:{1}", prf, td.Name));
}
}
xw.WriteAttributeString("minOccurs", member.IsRequired ? "1" : "0");
xw.WriteAttributeString("maxOccurs", member.IsArray ? "unbounded" : "1");
xw.WriteEndElement();
}
xw.WriteEndElement();
xw.WriteEndElement();
}