internal static void ImportXsdComplex(IfcDoc.Schema.XSD.complexType complex, DocSchema docSchema, DocEntity docEntity)
{
if (complex == null)
return;
foreach (IfcDoc.Schema.XSD.attribute att in complex.attribute)
{
ImportXsdAttribute(att, docSchema, docEntity);
}
if (complex.choice != null)
{
foreach (IfcDoc.Schema.XSD.element sub in complex.choice.element)
{
ImportXsdElement(sub, docEntity, true);
}
}
if (complex.sequence != null)
{
foreach (IfcDoc.Schema.XSD.element sub in complex.sequence.element)
{
ImportXsdElement(sub, docEntity, true);
}
}
if (complex.all != null)
{
foreach (IfcDoc.Schema.XSD.element sub in complex.all.element)
{
ImportXsdElement(sub, docEntity, true);
}
}
if (complex.complexContent != null)
{
if(complex.complexContent.extension != null)
{
docEntity.BaseDefinition = complex.complexContent.extension.basetype;
foreach (IfcDoc.Schema.XSD.attribute att in complex.complexContent.extension.attribute)
{
ImportXsdAttribute(att, docSchema, docEntity);
}
if(complex.complexContent.extension.choice != null)
{
foreach (IfcDoc.Schema.XSD.element sub in complex.complexContent.extension.choice.element)
{
ImportXsdElement(sub, docEntity, true);
}
}
}
}
}