Before you discover the structure of your input file, you can choose one of the following options on the
Settings
tab:
Default output groups
Intelligent Structure Discovery
can generate normalized or
denormalized output groups.
Intelligent Structure Discovery
also generates groups based on XSD compositors, such as
choice groups, if the input file uses them.
When you generate default
output groups, you can switch to the
denormalized
data normalization mode in the
Relational Output
tab to merge
multiple output groups into a single group. This allows the data to be
written to a single target for streamlined data processing.
Normalized hierarchy relationships
This method generates output groups for each repeating element. Using normalized hierarchy
relationships is generally faster and uses less memory than using default
output groups.
When you generate normalized hierarchy relationships, you
can switch to the
denormalized
data normalization
mode in the
Relational Output
tab to merge multiple output groups
into a single group. This allows the data to be written to a single
target for streamlined data processing.
Entity relationships
This method generates output groups for each repeating element and for complex data types.
Using entity relationships creates the most compact representation of
complex data types. You can use entity relationships only for XML and XSD
files.
When
Intelligent Structure Discovery
generates entity relationships, it uses the following
rules:
Intelligent Structure Discovery
adds a primary key with the name
<group name>_PK
to every output
group.
Intelligent Structure Discovery
generates an output group for the
following global elements:
The root
element
Elements that
are part of a recursive reference
Repeated
elements with the indicator
maxOccurs =
"unbounded"
Intelligent Structure Discovery
adds foreign keys to output groups
based on global elements for each output group that refers to
the global element. The foreign keys use the name
<parent group name>_FK
. If there are
multiple parent groups that refer to the global element, the
output group for the global element has multiple foreign keys.
Intelligent Structure Discovery
generates an output group for every
complex type. The name of the output group is the name of the
complex type.
If a complex type has a
one-to-one relationship with its parent element,
Intelligent Structure Discovery
adds a foreign key with the name
<parent element name>_<type
name>_FK
to the output group of the complex
type.
If there is a
one-to-many or many-to-many relationship between a complex type
and its parent elements,
Intelligent Structure Discovery
generates a bridge table called
<group name 1>_<group name 2>
.
The bridge table includes only a primary key, a foreign key to
the first output group, and a foreign key to the second output
group.
You can use the
maxOccurs schema attribute with simple data types to generate
multiple individual output fields, rather than a single output
group. However, when maxOccurs is set to a value greater than
12,
Intelligent Structure Discovery
creates a single output group
rather than multiple output fields.
In every output group, the first field is the generated
primary key, followed by any foreign keys, and then the fields present
in the schema.
You can use the maxOccurs schema attribute with simple data types to generate multiple individual
output fields, rather than a single output group. However, when
maxOccurs is set to a value greater than 12,
Intelligent Structure Discovery
creates a single output group even for simple data
types rather than multiple output fields.