def build_enum_type(s_edt): ''' Build an xsd simpleType out of a S_EDT. ''' s_dt = nav_one(s_edt).S_DT[17]() enum = ET.Element('xs:simpleType', name=s_dt.name) enum_list = ET.SubElement(enum, 'xs:restriction', base='xs:string') first_filter = lambda selected: not nav_one(selected).S_ENUM[56, 'succeeds']() s_enum = nav_any(s_edt).S_ENUM[27](first_filter) while s_enum: ET.SubElement(enum_list, 'xs:enumeration', value=s_enum.name) s_enum = nav_one(s_enum).S_ENUM[56, 'precedes']() return enum
def build_struct_type(s_sdt): ''' Build an xsd complexType out of a S_SDT. ''' s_dt = nav_one(s_sdt).S_DT[17]() struct = ET.Element('xs:complexType', name=s_dt.name) first_filter = lambda selected: not nav_one(selected).S_MBR[46, 'succeeds']() s_mbr = nav_any(s_sdt).S_MBR[44](first_filter) while s_mbr: s_dt = nav_one(s_mbr).S_DT[45]() type_name = get_type_name(s_dt) ET.SubElement(struct, 'xs:attribute', name=s_mbr.name, type=type_name) s_mbr = nav_one(s_mbr).S_MBR[46, 'precedes']() return struct
def build_enum_type(s_edt): ''' Build an xsd simpleType out of a S_EDT. ''' s_dt = nav_one(s_edt).S_DT[17]() enum = ET.Element('xs:simpleType', name=s_dt.name) enum_list = ET.SubElement(enum, 'xs:restriction', base='xs:string') first_filter = lambda selected: not nav_one(selected).S_ENUM[56, 'succeeds' ]() s_enum = nav_any(s_edt).S_ENUM[27](first_filter) while s_enum: ET.SubElement(enum_list, 'xs:enumeration', value=s_enum.name) s_enum = nav_one(s_enum).S_ENUM[56, 'precedes']() return enum
def build_struct_type(s_sdt): ''' Build an xsd complexType out of a S_SDT. ''' s_dt = nav_one(s_sdt).S_DT[17]() struct = ET.Element('xs:complexType', name=s_dt.name) first_filter = lambda selected: not nav_one(selected).S_MBR[46, 'succeeds' ]() s_mbr = nav_any(s_sdt).S_MBR[44](first_filter) while s_mbr: s_dt = nav_one(s_mbr).S_DT[45]() type_name = get_type_name(s_dt) ET.SubElement(struct, 'xs:attribute', name=s_mbr.name, type=type_name) s_mbr = nav_one(s_mbr).S_MBR[46, 'precedes']() return struct