When you base an intelligent structure model on a JSON, XML or XSD file, you can choose how Intelligent Structure Discovery defines the output groups.
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.
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.
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.
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.