The SSGT allows you to pick and choose specific parts of a release to include in a subset. This subset, which will likely have many fewer files and components than the full release, can be used in your IEPD. While you can reuse a full release package, it is easier to understand and work with only the schemas and the components that you need.
If you are developing multiple IEPDs, you can build a custom subset for each one or one larger subset that supports the requirements from each IEPD.
This tool does not have user accounts. To save your work, you must download either the individual wantlist file (a SSGT-generated XML file that stores your selections) or the full subset zip file, which will contain the latest wantlist. The only way to resume your work later on is to upload your latest wantlist file.
The following shows the full PersonNameType
from the 4.0 Core namespace:
<xs:complexType name="PersonNameType">
<xs:annotation>
<xs:documentation>A data type for a combination of names and/or titles by which a person is known.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="structures:ObjectType">
<xs:sequence>
<xs:element ref="nc:PersonNamePrefixText" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonGivenName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonMiddleName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonSurName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonNameSuffixText" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonMaidenName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonFullName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonNameCategoryAbstract" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonNameSalutationText" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonOfficialGivenName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonPreferredName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonSurNamePrefixText" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonNameAugmentationPoint" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="nc:personNameCommentText" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
The following shows a subset of this type, generated by the SSGT, with only the given name, middle name, and surname included:
<xs:complexType name="PersonNameType">
<xs:annotation>
<xs:documentation>A data type for a combination of names and/or titles by which a person is known.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="structures:ObjectType">
<xs:sequence>
<xs:element ref="nc:PersonGivenName" minOccurs="1" maxOccurs="1"/>
<xs:element ref="nc:PersonMiddleName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonSurName" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Subsets also let you constrain how many times an element may appear nested within a type. As a reference model, NIEM usually sets cardinality to optional and over-inclusive (minOccurs="0" maxOccurs="unbounded"
) to support a wide variety of requirements.
In an exchange, you can customize the cardinality to your exact requirements. Make elements required, limit occurrences to only once, or set any other cardinality as long as it does not conflict with the original cardinality from NIEM (an element that is required in NIEM cannot be made optional in a subset).
The subset example above shows updated cardinality, setting the given name and surname to occur exactly once and setting middle name to be optional with multiples allowed.
The SSGT will automatically calculate all required dependencies whenever a component is added to the subset list.
If you later remove a selected component, dependencies that are no longer necessary will also be removed.