Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 22 additions & 12 deletions scripts/nameofclass.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,9 @@ def update_nameofclass_ref_attributes(
continue # nothing to add

# --- Generate or replace NameOfClassXXX simpleType in entity_file ---
simple_type_name = f"NameOfClass{ref_name}"
simple_type_name = f"NameOfClass{ref_name}Type"
if simple_type_name == "NameOfClassType":
simple_type_name = "NameOfClass"
existing_st = entity_root.find(
f".//xsd:simpleType[@name='{simple_type_name}']", namespaces=ns
)
Expand Down Expand Up @@ -204,8 +206,8 @@ def update_nameofclass_ref_attributes(
if parent_ref_name.endswith('_Dummy'):
parent_ref_name = l[2]

if parent_ref_name == '':
print(ref_name, l)
# if parent_ref_name == '':
# print(ref_name, l)

# print(ref_name, parent_ref_name, l)
# if ref_name == 'LinkRefStructure':
Expand All @@ -214,10 +216,15 @@ def update_nameofclass_ref_attributes(
# print(analyzer._get_type_chain(natural_class + "Ref"))
# raise

if parent_ref_name == '':
base = "NameOfClass"
else:
base = f"NameOfClass{parent_ref_name}Type"

restriction = etree.SubElement(
new_simple_type,
"{http://www.w3.org/2001/XMLSchema}restriction",
base=f"NameOfClass{parent_ref_name}",
base=base,
)
for cls in concrete_classes:
etree.SubElement(
Expand Down Expand Up @@ -291,13 +298,6 @@ def update_nameofclass_ref_attributes(
base="xsd:string",
)

# --- Add or replace nameOfRefClass attribute ---
existing_attr = parent_for_attr.find(
"{http://www.w3.org/2001/XMLSchema}attribute[@name='nameOfRefClass']"
)
if existing_attr is not None:
parent_for_attr.remove(existing_attr)

attrib = etree.Element(
"{http://www.w3.org/2001/XMLSchema}attribute",
name="nameOfRefClass",
Expand All @@ -317,7 +317,17 @@ def update_nameofclass_ref_attributes(
)
doc.text = f"Automatic reference class for {ref_name}"

parent_for_attr.append(attrib)
# --- Add or replace nameOfRefClass attribute ---
existing_attr = parent_for_attr.find(
"{http://www.w3.org/2001/XMLSchema}attribute[@name='nameOfRefClass']"
)
if existing_attr is not None:
index = parent_for_attr.index(existing_attr)
parent_for_attr.remove(existing_attr)
parent_for_attr.insert(index, attrib)
else:
parent_for_attr.append(attrib)

modified = True
else:
print(f"WARNING: {ref_name} has an unknown {natural_class}. Skipping")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of a COMPOSITE FRAME.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassCompositeFrameRefStructure" default="CompositeFrame">
<xsd:attribute name="nameOfRefClass" type="NameOfClassCompositeFrameRefStructureType" default="CompositeFrame">
<xsd:annotation>
<xsd:documentation>Automatic reference class for CompositeFrameRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
41 changes: 39 additions & 2 deletions xsd/netex_framework/netex_frames/netex_generalFrame_version.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -123,11 +123,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of a GENERAL FRAME.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassGeneralFrameRefStructure" default="GeneralFrame">
<xsd:attribute name="nameOfRefClass" type="NameOfClassGeneralFrameRefStructureType" default="GeneralFrame">
<xsd:annotation>
<xsd:documentation>Automatic reference class for GeneralFrameRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down Expand Up @@ -218,11 +234,32 @@ Rail transport, Roads and Road transport
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="VersionOfObjectRefStructure">
<xsd:attribute name="nameOfRefClass" type="NameOfClassGeneralFrameMemberRefStructure" default="GeneralFrameMember">
<xsd:attribute name="nameOfRefClass" type="NameOfClassGeneralFrameMemberRefStructureType" default="GeneralFrameMember">
<xsd:annotation>
<xsd:documentation>Automatic reference class for GeneralFrameMemberRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="ref" type="ObjectIdType" use="required">
<xsd:annotation>
<xsd:documentation>Identifier of referenced entity.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
18 changes: 17 additions & 1 deletion xsd/netex_framework/netex_frames/netex_resourceFrame_support.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of referenced entity.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassResourceFrameRefStructure" default="ResourceFrame">
<xsd:attribute name="nameOfRefClass" type="NameOfClassResourceFrameRefStructureType" default="ResourceFrame">
<xsd:annotation>
<xsd:documentation>Automatic reference class for ResourceFrameRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of SERVICE CALENDAR FRAME.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassServiceCalendarFrameRefStructure" default="ServiceCalendarFrame">
<xsd:attribute name="nameOfRefClass" type="NameOfClassServiceCalendarFrameRefStructureType" default="ServiceCalendarFrame">
<xsd:annotation>
<xsd:documentation>Automatic reference class for ServiceCalendarFrameRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of referenced entity.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClass" use="optional">
<xsd:annotation>
<xsd:documentation>Name of Class of the referenced entity. Allows reflection. Fixed for each entity type.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand All @@ -98,11 +119,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of referenced entity.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassAccessibilityAssessmentRefStructure" default="AccessibilityAssessment">
<xsd:attribute name="nameOfRefClass" type="NameOfClassAccessibilityAssessmentRefStructureType" default="AccessibilityAssessment">
<xsd:annotation>
<xsd:documentation>Automatic reference class for AccessibilityAssessmentRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of an ALTERNATIVE NAME.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassAlternativeNameRefStructure" default="AlternativeName">
<xsd:attribute name="nameOfRefClass" type="NameOfClassAlternativeNameRefStructureType" default="AlternativeName">
<xsd:annotation>
<xsd:documentation>Automatic reference class for AlternativeNameRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,27 @@ Rail transport, Roads and Road transport
<xsd:documentation>Identifier of referenced entity.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nameOfRefClass" type="NameOfClassAssignmentRefStructure">
<xsd:attribute name="nameOfRefClass" type="NameOfClassAssignmentRefStructureType">
<xsd:annotation>
<xsd:documentation>Automatic reference class for AssignmentRefStructure</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
<xsd:annotation>
<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
<xsd:annotation>
<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
Expand Down
Loading