xsdata.codegen.handlers.class_extension module¶
-
class
xsdata.codegen.handlers.class_extension.
ClassExtensionHandler
(container)[source]¶ Bases:
xsdata.codegen.mixins.HandlerInterface
Reduce class extensions by copying or creating new attributes.
- Parameters
container (
ContainerInterface
) –
-
INCLUDES_NONE
= 0¶
-
INCLUDES_SOME
= 1¶
-
INCLUDES_ALL
= 2¶
-
container
: ContainerInterface¶
-
process
(target)[source]¶ Iterate and process the target class’s extensions in reverser order.
The reverse order is necessary in order to maintain the correct attributes ordering during cloning.
- Parameters
target (
Class
) –
-
process_extension
(target, extension)[source]¶ Slit the process of extension into schema data types and user defined types.
-
classmethod
process_native_extension
(target, extension)[source]¶ Native type flatten handler.
In case of enumerations copy the native data type to all enum members, otherwise create a default text value with the extension attributes.
-
classmethod
process_simple_extension
(source, target, ext)[source]¶ Simple flatten extension handler for common classes eg SimpleType, Restriction.
- Steps:
If target is source: drop the extension.
If source is enumeration and target isn’t create default value attribute.
If both source and target are enumerations copy all attributes.
If both source and target are not enumerations copy all attributes.
If target is enumeration: drop the extension.
-
classmethod
process_complex_extension
(source, target, ext)[source]¶ Complex flatten extension handler for primary classes eg ComplexType, Element.
- Drop extension when:
source includes all target attributes
- Copy all attributes when:
source includes some of the target attributes
source has suffix attribute and target has at least one attribute
target has at least one suffix attribute
source is marked as strict type
-
find_dependency
(target, attr_type)[source]¶ Find dependency for the given extension type with priority.
Search priority: xs:SimpleType > xs:ComplexType
-
classmethod
compare_attributes
(source, target)[source]¶ Compare the attributes of the two classes and return whether the source includes all, some or none of the target attributes.