Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Publication format

...

The reference set of AIXM 5.1 Business Rules is made available in the form of an Excel file, that contains both the SBVR formulation and, where available, the Schematron encoding of the rule. This Excel file is available here: www.aixm.aero/page/business-rules.

XML file (new)

Clicking on the XML button of the AIXM BRM web application allows exporting rules into an XML file:

Image Removed

...

Three files have to be considered together:

  • AIXM-BR-SBVR.xml = new export file
  • AIXM-BR-SBVR.XSD = static file,

...

  • used to validate the new export file, can be downloaded here
  • AIXM-BR-SBVR.xsl = static file, used to transform the new export file, can be downloaded here


Clicking on the XML button of the AIXM BRM web application allows exporting rules into an XML file:

Image Added


The new XML export structure follows the schema defined in the AIXM-BR-SBVR.XSD file, which matches with the following structure:

Code Block
languagexml
themeConfluence
firstline1
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="AIXM-BR-SBVR.xsl"?><AIXM-BR-SBVR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	criteriaUID="..."
	criteriaText="..."
	criteriaCategory="..."
	criteriaStatus="Rule accepted"
	criteriaSource="..."
	criteriaAssignee="..."
    criteriaAIXMversion="..."
	criteriaProfile="Event:Warning"
	criteriaRights="..."
	exportedAt="2019-01-04T12:32:47.111Z"
    xsi:noNamespaceSchemaLocation="AIXM-BR-SBVR.xsd">
    <!-- all criteria used to select the rules are included as attributes of the root element.
        Criteria not used are left out. A time stamp for the export is added.  -->
    <rule uid="AIXM-5.1_RULE-1A5E00">
        <!-- example for a simple rule -->
        <profiles>
            <!-- for each applicable profile, include a profile element here. -->
            <profile>
				<name>EAD</name>
				<level>Error</level>
			</profile>
            <profile>
				<name>etc. if applicable</name>
				<level>...</level>
			</profile>
        </profiles>
        <!-- attention, the order of the fields is slightly different from the Excel export. References are at the end, as they are less important. -->
        <name>GML Profile - Geographic Reference Systems supported</name>
        <aixm_class>*</aixm_class>
        <aixm_attributes>*</aixm_attributes>
        <aixm_association/>
        <!-- empty fields should be included as they will make simpler the script for generating a HTML table at the end --> 
        <sbvr>
            <!-- export here rule tagged description --> 
            <keyword>It is prohibited that assigned</keyword> <noun_concept>srsName</noun_concept> <keyword>value</keyword> <keyword>not</keyword> <keyword>equal-to</keyword> <name>('urn:ogc:def:crs:EPSG::4326', 'urn:ogc:def:crs:EPSG::4258', 'urn:ogc:def:crs:EPSG::4322', 'urn:ogc:def:crs:EPSG::4230', 'urn:ogc:def:crs:EPSG::4668', 'urn:ogc:def:crs:EPSG::4312', 'urn:ogc:def:crs:EPSG::4215', 'urn:ogc:def:crs:EPSG::4801', 'urn:ogc:def:crs:EPSG::4149', 'urn:ogc:def:crs:EPSG::4275', 'urn:ogc:def:crs:EPSG::4746', 'urn:ogc:def:crs:EPSG::4121', 'urn:ogc:def:crs:EPSG::4658', 'urn:ogc:def:crs:EPSG::4299', 'urn:ogc:def:crs:EPSG::4806', 'urn:ogc:def:crs:EPSG::4277', 'urn:ogc:def:crs:EPSG::4207', 'urn:ogc:def:crs:EPSG::4274', 'urn:ogc:def:crs:EPSG::4740', 'urn:ogc:def:crs:EPSG::4313', 'urn:ogc:def:crs:EPSG::4124', 'urn:ogc:def:crs:EPSG::4267', 'urn:ogc:def:crs:EPSG::4269', 'urn:ogc:def:crs:OGC:1.3:CRS84')</name>
        </sbvr>
        <sbvr_html>
            <!-- export here the formatted SBVR from the HMI with HTML tags -->
            <font color="FF9900">It is prohibited that assigned</font> <font color="008080"><u><b>srsName</b></u></font> <font color="FF9900">value</font> <font color="FF9900">not</font> <font color="FF9900">equal-to</font> <font color="339966">('urn:ogc:def:crs:EPSG::4326', 'urn:ogc:def:crs:EPSG::4258', 'urn:ogc:def:crs:EPSG::4322', 'urn:ogc:def:crs:EPSG::4230', 'urn:ogc:def:crs:EPSG::4668', 'urn:ogc:def:crs:EPSG::4312', 'urn:ogc:def:crs:EPSG::4215', 'urn:ogc:def:crs:EPSG::4801', 'urn:ogc:def:crs:EPSG::4149', 'urn:ogc:def:crs:EPSG::4275', 'urn:ogc:def:crs:EPSG::4746', 'urn:ogc:def:crs:EPSG::4121', 'urn:ogc:def:crs:EPSG::4658', 'urn:ogc:def:crs:EPSG::4299', 'urn:ogc:def:crs:EPSG::4806', 'urn:ogc:def:crs:EPSG::4277', 'urn:ogc:def:crs:EPSG::4207', 'urn:ogc:def:crs:EPSG::4274', 'urn:ogc:def:crs:EPSG::4740', 'urn:ogc:def:crs:EPSG::4313', 'urn:ogc:def:crs:EPSG::4124', 'urn:ogc:def:crs:EPSG::4267', 'urn:ogc:def:crs:EPSG::4269', 'urn:ogc:def:crs:OGC:1.3:CRS84')</font>
        </sbvr_html>
        <comments>Only the coordinate reference system listed in Appendix 1 of the GML Guidelines for Aviation Data shall be used.</comments>
        <diagnostics>Only the coordinate reference system listed in Appendix 1 of the GML Guidelines for Aviation Data shall be used.</diagnostics>
        <timeslice>All</timeslice>
        <category>Standard (ICAO, industry, etc.)</category>
        <source>ICAO Annex 15</source>
        <reference>Appendix 1</reference>
        <schematron>
            <context>//*[@srsName]</context>
            <code>@srsName=( 
                'urn:ogc:def:crs:EPSG::4326', 
                'urn:ogc:def:crs:EPSG::4258', 
                'urn:ogc:def:crs:EPSG::4322', 
                'urn:ogc:def:crs:EPSG::4230', 
                'urn:ogc:def:crs:EPSG::4668', 
                'urn:ogc:def:crs:EPSG::4312', 
                'urn:ogc:def:crs:EPSG::4215', 
                'urn:ogc:def:crs:EPSG::4801', 
                'urn:ogc:def:crs:EPSG::4149', 
                'urn:ogc:def:crs:EPSG::4275', 
                'urn:ogc:def:crs:EPSG::4746', 
                'urn:ogc:def:crs:EPSG::4121', 
                'urn:ogc:def:crs:EPSG::4658', 
                'urn:ogc:def:crs:EPSG::4299', 
                'urn:ogc:def:crs:EPSG::4806', 
                'urn:ogc:def:crs:EPSG::4277', 
                'urn:ogc:def:crs:EPSG::4207', 
                'urn:ogc:def:crs:EPSG::4274', 
                'urn:ogc:def:crs:EPSG::4740', 
                'urn:ogc:def:crs:EPSG::4313', 
                'urn:ogc:def:crs:EPSG::4124', 
                'urn:ogc:def:crs:EPSG::4267', 
                'urn:ogc:def:crs:EPSG::4269', 
                'urn:ogc:def:crs:OGC:1.3:CRS84' 
                )</code>
        </schematron>
    </rule>
    <templateUID="1ACF48">
        <!-- example for a templated rule -->
        <profiles>
            <!-- for each applicable profile, include a profile element here. -->
            <profile>
				<name>EAD</name>
				<level>Error</level>
			</profile>
            <profile>
				<name>etc. if applicable</name>
				<level>...</level>
			</profile>
        </profiles>
        <!-- attention, the order of the fields is slightly different from the Excel export. References are at the end, as they are less important. -->
        <name>Mandatory unit of measurement</name>
        <aixm_class>${entity}</aixm_class>
        <aixm_attributes>${property}</aixm_attributes>
        <aixm_association/>
        <!-- empty fields should be included as they will make simpler the script for generating a HTML table at the end --> 
        <sbvr>
            <!-- export here rule tagged description --> 
            <keyword>Each </keyword><noun_concept>${entity}</noun_concept> <keyword>with assigned</keyword> <noun_concept>${property}</noun_concept> <keyword>shall</keyword> <verb_concept-concept>have</verb_concept-concept> <keyword>assigned</keyword>  <noun_concept>${property}.uom</noun_concept> <keyword>value</keyword> 
        </sbvr>
        <sbvr_html>
            <!-- export here the formatted SBVR from the HMI with HTML tags -->
            <font color="#ff9900">Each </font><strong><u><font color="#008080">${entity}</font></u></strong> <font color="#ff9900">with assigned</font> <strong><u><font color="#008080">${property}</font></u></strong> <font color="#ff9900">shall</font> <em><font color="#0000ff">have</font></em> <font color="#ff9900">assigned</font>  <strong><u><font color="#008080">${property}.uom</font></u></strong> <font color="#ff9900">value</font><u><font color="#008080"><b></b></font></u><font color="#008080"></font><u><b></b></u><b></b><u><font color="#008080"></font></u><font color="#008080"></font>
        </sbvr_html>
        <comments>The Unit of measurement shall be specified if a value is specified for a property with uom attribute.</comments>
        <diagnostics>Found ${entity} with assigned ${property} value missing unit of measurement</diagnostics>
        <timeslice>All</timeslice>
        <category>Coding rule</category>
        <source>AIXM Model</source>
        <reference/>
        <schematron>
            <context>//aixm:${entity}/aixm:${property} | //aixm:${entity}TimeSlice/aixm:${property}</context>
            <code>string-length(.)=0 or string-length(@uom)!=0</code>
        </schematron>
        <instances>
            <instance UID="AIXM-5.1_RULE-D8CC1">
                <profiles>
                    <!-- for each applicable profile specified, include a profile element here. -->
                    <profile>
						<name>etc. if applicable</name>
						<level>...</level>
					</profile>
                </profiles>
                <parameters>
                    <parameter name="entity">AerialRefuellingAnchor</parameter>
                    <parameter name="property">speedLimit</parameter>
                </parameters>
            </instance>
            <instance UID="AIXM-5.1_RULE-D8CC3">
                <profiles>
                    <!-- for each applicable profile specified, include a profile element here. -->
                    <profile>
						<name>etc. if applicable</name>
						<level>...</level>
					</profile>
                </profiles>
                <parameters>
                    <parameter name="entity">AerialRefuellingAnchor</parameter>
                    <parameter name="property">legLength</parameter>
                </parameters>
            </instance>
            <!-- etc. -->
        </instances>
    </template>
</AIXM-BR-SBVR>


The XSL stylesheet is used to convert is used to convert the AIXM-BR-SBVR.xml export file into a single HTML table, where templates are instantiated.

For that, you simply have to:

  1. copy the AIXM-BR-SBVR.xsl transformation file next to the AIXM-BR-SBVR.xml export file

...

  1. ,
  2. open the AIXM-BR-SBVR.xml export file with Internet Explorer, or with any XSLT compatible tool (like an XML editor ).

The result in tabular format looks like this:

Image Added



Profiles

As explained in the Introduction, not all systems apply the same rules, in particular when it comes to minimal data - what is critical for a system might be of no relevance for another system. The error level of a rule may also depend on the profile.
The profile to which a rule belongs is indicated starting from the second column in Excel or through the Profile child element of each rule/template/instance in the XML export. Two error levels are used in the profiles ("Error" or "Warning").

...

This profile will contain a selection of AIXM features and business rules that can be used in order to verify the correctness and completeness of Digital NOTAM data sets. This shall be included in the Digital NOTAM Event Specification (starting with version 2.0).

Event_FAA profile

This profile will contain rules that are specific to the Digital NOTAM encoding scenarios of FAA (FNS-NDS) system. Such rules refer to an FAA scenario number.