@@ -160,6 +160,8 @@ def update_nameofclass_ref_attributes(
160160
161161 # --- Generate or replace NameOfClassXXX simpleType in entity_file ---
162162 simple_type_name = f"NameOfClass{ ref_name } Type"
163+ if simple_type_name == "NameOfClassType" :
164+ simple_type_name = "NameOfClass"
163165 existing_st = entity_root .find (
164166 f".//xsd:simpleType[@name='{ simple_type_name } ']" , namespaces = ns
165167 )
@@ -204,8 +206,8 @@ def update_nameofclass_ref_attributes(
204206 if parent_ref_name .endswith ('_Dummy' ):
205207 parent_ref_name = l [2 ]
206208
207- if parent_ref_name == '' :
208- print (ref_name , l )
209+ # if parent_ref_name == '':
210+ # print(ref_name, l)
209211
210212 # print(ref_name, parent_ref_name, l)
211213 # if ref_name == 'LinkRefStructure':
@@ -214,10 +216,15 @@ def update_nameofclass_ref_attributes(
214216 # print(analyzer._get_type_chain(natural_class + "Ref"))
215217 # raise
216218
219+ if parent_ref_name == '' :
220+ base = "NameOfClass"
221+ else :
222+ base = f"NameOfClass{ parent_ref_name } Type"
223+
217224 restriction = etree .SubElement (
218225 new_simple_type ,
219226 "{http://www.w3.org/2001/XMLSchema}restriction" ,
220- base = f"NameOfClass { parent_ref_name } Type" ,
227+ base = base ,
221228 )
222229 for cls in concrete_classes :
223230 etree .SubElement (
@@ -291,13 +298,6 @@ def update_nameofclass_ref_attributes(
291298 base = "xsd:string" ,
292299 )
293300
294- # --- Add or replace nameOfRefClass attribute ---
295- existing_attr = parent_for_attr .find (
296- "{http://www.w3.org/2001/XMLSchema}attribute[@name='nameOfRefClass']"
297- )
298- if existing_attr is not None :
299- parent_for_attr .remove (existing_attr )
300-
301301 attrib = etree .Element (
302302 "{http://www.w3.org/2001/XMLSchema}attribute" ,
303303 name = "nameOfRefClass" ,
@@ -317,7 +317,17 @@ def update_nameofclass_ref_attributes(
317317 )
318318 doc .text = f"Automatic reference class for { ref_name } "
319319
320- parent_for_attr .append (attrib )
320+ # --- Add or replace nameOfRefClass attribute ---
321+ existing_attr = parent_for_attr .find (
322+ "{http://www.w3.org/2001/XMLSchema}attribute[@name='nameOfRefClass']"
323+ )
324+ if existing_attr is not None :
325+ index = parent_for_attr .index (existing_attr )
326+ parent_for_attr .remove (existing_attr )
327+ parent_for_attr .insert (index , attrib )
328+ else :
329+ parent_for_attr .append (attrib )
330+
321331 modified = True
322332 else :
323333 print (f"WARNING: { ref_name } has an unknown { natural_class } . Skipping" )
0 commit comments