NATIONAL INFORMATION EXCHANGE MODEL

This site employs JavaScript, but your browser does not support JavaScript. Please enable JavaScript on your browser, or if your browser does not support JavaScript, access this site with a browser that does support Javascript.

Help

Schema Subset Generation Tool

NIEM Schema Subsets

The NIEM Data Model covers several domains and typically not all of the data model is usable in an exchange. It is useful to make a schema subset of NIEM components to use in an exchange. It helps to limit the scope of developing an IEPD and can be built to the specific requirements of an exchange. There are several actions available to search the NIEM data model and build a NIEM subset.

Search the NIEM data model

The NIEM data model search returns search results based on the search terms entered. The search results are in the form of tree. All properties and types returned are links to more detailed pages about those components. Types in the tree can be expanded to view the properties that can be contained in that type.

Searching NIEM
  • Search the NIEM data model from the Search Page.
  • Enter Search terms separated by spaces in the text entry box.
  • Click the Search button to perform the search.
  • The search will return all results that match all of the search terms in the names, definitions, keywords, usage information, or examples. There are different search options that can be changed to refine search results.
Search Options
  • The default search options on the Search Page will search the NIEM data model for properties. Properties will appear as XML elements in instances.
  • To search for something else in the NIEM data model click on the pull down menu and select the item to search on.
  • The choices are to search for a property, type, namespace, facet, external property, or association.
Advanced Search Options
  • To open the advanced search options click the "Show Advanced" options link on the Search Page.
  • There are multiple text entry boxes for searching. There is a search box for items that match all words, match exact phrases, match at least one word, and without the words entered.
  • To clear all the text entry boxes click the Clear search terms link.
  • Another advanced search option is choosing the fields searched. Available options are to search in names, definitions, keywords, usage information, and example content. Check or uncheck the checkboxes to decide which fields to search.
  • To reset all of the advanced search options click the Reset All Checkboxes to Defaults link at the bottom of the advanced search options.
Search Domains

To limit searches to only certain domains on the Search Page click the "Show Advanced" options link and click the checkboxes to select the domains to use in searches. Subsets containing each domain are available for download. The domains available for searching are:

  • Universal
  • Common
  • Emergency Management
  • Immigration
  • Infrastructure Protection
  • Intelligence
  • International Trade
  • Justice
  • Screening
  • other - all othe namespaces in the model
Search Context Definitions

Some types inherit properties from their parent types. This allows for better reuse of elements, but it can be hard to find properties that have been inherited from a parent type. For example, a search for "BailStatus" will not return any results, but searching the context definitions will return an ActivityStatus the BailType inherits from ActivityType. These kinds of properties can be found by searching context definitions.

  • Context definition can only be searched on multiple search terms or camelCase search terms. If there are not multiple search terms or terms that can be split then it is impossible to search for one term in the context of another.
  • If a user performs a search that can be used for context definition searches, then a link to "Search Context Definitions" will appear below the search box.
  • If that search did not return the desired results, then click the "Search Context Definitions" link to perform the context definition search.
  • This search will search for a property that matches a search term and then search for inherited properties that match the other search terms. The results describe the matching context definition term and the term that inherits it.
  • The search results can be expanded by clicking on the "+" icon next to a result. It will expand to show the inherited type and the properties inherited. The context definition match will be in bold.

Navigate the NIEM Data Model

The properties and types displayed are links to more detailed information about that component. This enables users to navigate through the NIEM data model.

Navigating the Model with the Tree
  • Search results and lists of components are displayed as trees. Expanding a node in the tree will display all of the properies contained in a type.
  • In an expanded node clicking on the "show inheritance" link will show parent types of the current type.
  • Clicking on a link of a property or a type will display a detailed property or type page.
Property Display Page
  • The property detail page will display the definition of the property along with any keywords, usage information, or examples that may be available.
  • The details page will also display the type of that property and any types that contain that property.
  • If the property is abstract it will display properties that are substitutable for that property.
Type Display Page
  • The type detail page will display the definition of the type.
  • The content style will be displayed. It will be one of Complex with Complex Content, Complex with Simple Content, or Simple. Complex Types with Complex Content can contain attributes and elements, but not simple types. Complex Types with Simple Content can contain attributes and a simple value. Simple Types are simple xml schema types.
  • The simple content type will be displayed if one exists. Only types that are Complex with Simple Content will have simple content types.
  • If the type has any base types that it inherits from they will be displayed.
  • Derived types will also be displayed.
  • Properties contained in the type are displayed. These are Properties as Subject - The type is the subject of the following properties. These are properties which may be contained in this type, or which make up this type.
  • Properties of the type are displayed. These are Properties as Object - The type is the object of the following properties. These are properties that are of this type.
  • If the type is an external adapter type it will display notification. An external adapter type is a NIEM conformant XML Schema complex type that wraps a set of external content.

Download already generated domain subsets

Subsets for NIEM domains have been generated and are available for download on the options page. Also, everything from a domain can be added to a subset from the options page.

Build a schema subset

Select the properties and types required for a data exchange, and generate a conformant schema subset of the full NIEM schema set. All dependencies are automatically added to ensure the resulting schema subset is valid. The user requirements can be saved and/or reloaded in a wantlist file(specification). The current working version of the wantlist is shown in the box on the left of the screen.

Add Components to schema subset
  • To add components to the schema subset click on the add button next to the component in the search results or details pages.
  • A property will be added to the wantlist for the schema subset in the context it is displayed. If a property is displayed in a type, then adding it will add it to the wantlist in the type. If it is a top level component then it will be added to the wantlist as a top level component.
  • To add a property as a top level component either click on the add button next to the property when it is the top level in the tree or click on the link to open the details page for that property and click on the add button from there.
  • To add a property in a type click on the add button where the property is displayed in that type.
  • Properties can be added as content and as reference.
Add as content to schema subset

Some properties can be added as content.

  • To add a Property as content hover over the add button for that property.
  • Make sure that the "as content" checkbox is checked.
  • If it is disabled then it is not possible to add the property as content in the current context.
  • A common place for as content to be disabled is in Associations.
Add as reference to schema subset

Some properties can be added as reference.

  • To add a Property as reference hover over the add button for that property.
  • Make sure that the "as reference" checkbox is checked.
  • If the checkbox is disabled then it is not possible to add the property as reference in the current context.

Save list of requested components

  • To save a wantlist of requested components go to the Generate Documents page.
  • Click on "Save current wantlist to a file" to download the file.

Upload list of requested components

  • To upload a wantlist of requested components go to the Options page.
  • Click on the "Browse" button in the Load Wantlist section.
  • Click on "Load Wantlist" to upload the file.

Download a schema subset

  • To generate a schema subset go to the Generate Documents page.
  • Select whether documentation should be included in the schema or not.
  • Click on "Save Schema Subset to a file" to generate and download the zip file of the schemas.

Create IEPD with current subset

  • To create an IEPD with the current wantlist and schema subset go to the Generate Documents page.
  • Select whether documentation should be included in the schema or not.
  • Click on "Create IEPD with current subset and wantlist" to create an IEPD in the repository using the current subset.

Change the NIEM release

  • To change the release that is being used to build the subset click on the Options page
  • NOTE: Please be careful to save your current wantlist before changing releases. The wantlist is cleared when the release is changed.
  • Select the version of NIEM that you would like to use from the drop down box.

Set the cardinality of elements in subset

  • After either building a subset or loading a subset, the subset will show the cardinality in parenthesis after elements in a type.
  • Click on the "Edit Cardinality" link in the subset display.
  • The cardinality for all elements can be set by entering the values for the min and max and clicking the button.
  • Cardinalities for the individual elements can be set by using the menu for min and max by each element.