Publication format
The AIXM Business Rules are provided in two formats:
- as an XML file, which preserves the information about "templates", which are used in the definition of the majority of the rules. The XML format is intended to be used for automating the development of data validation services, which could generate code directly from the SBVR structured rules and templates
as a table, in HTML format. which is created by converting the original XML file into HTML. This can also be imported in Excel, in order to facilitate the transition to the new syntax, as the previous versions have been published only in Excel format. Also, the Excel format is more convenient for human used, as it allows sorting and filtering of the rules.
Info | ||
---|---|---|
| ||
In case of discrepancies between the XML and the Excel version, the XML version should be considered as the authoritative version. |
XML file
The new XML export structure follows the schema defined in the AIXM-BR-SBVR.XSD file, which matches with the following structure:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Info | ||||||||
| ||||||||
Until the work on the new syntax is finalised, the file that contains the work in progress version of the rules is provided here: https://drive.google.com/drive/folders/1cXsTgQcIcV-DFxNyP5lftLLNxEjeudJD?usp=sharing |
Rule editor
The AIXM Business Rules are currently created and managed by Eurocontrol, using a tool called Business Rules Manager (BRM), which is currently not available to the external users. A new version of the BRM tool is in development, featuring many significant enhancements and including the possibility to offer access to external users.
One of the important capabilities of the BRM is "rule templates", which enables the creation and maintenance of rules that have a similar structure in the form of a single "abstract" rule, with a number of concrete instances. The screenshot below shows an example of such a templated rule. It is estimated that 70-80% of the current AIXM business rules are templated and that preserving this information in the output rule sets might be beneficial for the users.
Publication format
The AIXM Business Rules are provided in two formats:
- as an XML file, which preserves the information about "templates" that are applied in the definition of the majority of the rules. The XML format is intended to be used for automating the development of data validation services, which could generate code directly from the SBVR structured rules and templates
as a table, in Excel format. which is created by converting the original XML file into HTML and importing in Excel.
Info | ||
---|---|---|
| ||
In case of discrepancies between the XML and the Excel version, the XML version should be considered as the authoritative version. |
XML file
The XML export structure follows the schema defined in the AIXM-BR-SBVR.XSD file, which matches with the following structure:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?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" criteriaAIXMversion="5.1.1" criteriaProfile="eEAD:Warning, eEAD:Error, DigitalNOTAM:Error, DigitalNOTAM:Warning" criteriaStatus="Rule accepted" exportedAt="2024-04-15T20:22:32.854048Z" xsi:noNamespaceSchemaLocation="AIXM-BR-SBVR.xsd"> <!-- all criteria used to select the rules are included as attributes of the root element.<rule uid="AIXM-5.1.1_RULE-1F47D0"> <profiles> <profile> <name>DigitalNOTAM</name> Criteria not used are left out. A<level>Error</level> time stamp for the export is added.</profile> --> </profiles> <rule uid="AIXM-5.1_RULE-1A5E00"> <name>(Event) version 2.0</name> <!-- example for a simple rule --> <aixm_class>event:Event</aixm_class> <aixm_attributes>version</aixm_attributes> <aixm_association/> <sbvr> <profiles> <keyword>It is prohibited that</keyword> <!-- for each applicable profile, include a profile element here. --> <noun_concept>event:Event</noun_concept> <verb_concept>has-descendant</verb_concept> <noun_concept>event:version</noun_concept> <profile> <name>EAD</name> <level>Error</level> </profile> <keyword>value</keyword> <keyword>other-than</keyword> <name>'2.0'</name> <profile> <name>etc. if applicable</name> <level>...</level> </profile> </profiles> </sbvr> <comments>It is obligatory that the Event has version equal to '2.0'</comments> <diagnostics>Found Event version different <!-- attention, the order of the fields is slightly different from the Excel export. References are at the end, as they are less important. --> from '2.0'</diagnostics> <timeslice/> <category>Standard (ICAO, industry, etc.)</category> <source>Digital NOTAM Event Specification</source> <reference/> <context>It is <name>GML Profile - Geographic Reference Systems supported</name>prohibited that DVT</context> <remarks/> </rule> <template <aixm_class>*</aixm_class>uid="1AA450"> <profiles> <aixm_attributes>*</aixm_attributes> <profile> <aixm_association/> <name>eEAD</name> <!-- empty fields<level>Warning</level> should be included as they will make</profile> simpler the script for generating</profiles> a HTML table at the<name>Resolution end(horizontal) --> ${Equipment} when used at aerodrome</name> <sbvr><aixm_class>Navaid</aixm_class> <aixm_attributes/> <aixm_association>servedAirport, composedOf</aixm_association> <!--<sbvr> export here rule tagged description --> <keyword>It is prohibited that</keyword> <noun_concept>NavaidTimeSlice</noun_concept> <keyword>It is prohibited that assigned</keyword><verb_concept>has</verb_concept> <noun_concept>srsName<concept>servedAirport@xlink:href</noun_concept> <keyword>value</keyword> <keyword>not< <keyword>value</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> <keyword>and</keyword> <noun_concept>NavaidTimeSlice.navaidEquipment@xlink:href</noun_concept> <verb_concept>references-to</verb_concept> <noun_concept>${Equipment}</noun_concept> <keyword>and</keyword> <noun_concept>${Equipment}</noun_concept> <verb_concept>has-descendant</verb_concept> <noun_concept>gml:pos</noun_concept> <keyword>value</keyword> <!<keyword>coordinates-expressed-with</keyword> export here the formatted SBVR from the HMI with HTML tags --> <keyword>less-than 5</keyword> <name>'decimals'</name> </sbvr> <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><comments>Latitude and Longitude of ${Equipment}, when used for aerodrome operations, shall be published with 1/10 sec resolution</comments> <diagnostics>Found ${Equipment} used for homing at AirportHeliport and having location.ElevatedPoint coordinates expressed with insufficient resolution (less than 5 decimals).</diagnostics> <timeslice>set of snapshots</timeslice> <category>Recommended practice (ICAO, industry, etc.)</category> <source>ICAO Annex 15</source> <reference>Table A7-1</reference> <context>It is prohibited that DV and RF and DVT</context> <remarks/> <instances> <instance uid="AIXM-5.1.1_RULE-1AA451"> <profiles> <diagnostics>Only the<profile> coordinate reference system listed in Appendix 1 of the GML Guidelines for Aviation<name>eEAD</name> Data shall be used.</diagnostics> <timeslice>All<<level>Warning</timeslice>level> <category>Standard (ICAO, industry, etc.)</category>profile> <source>ICAO Annex 15</source></profiles> <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> <template uid="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> <!-- different from the earlier version: the sbvr_html element is no longer present here --> <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> |
Tabular format
HTML
First, an XSL stylesheet is used to convert the AIXM-BR-SBVR.xml export file into a single HTML table, where templates are instantiated.
The transformation can also be done with a browser such as Internet Explorer, which is able to process the XSL styling information. For that purpose:
- copy the AIXM-BR-SBVR.xsl transformation file next to the AIXM-BR-SBVR.xml export file,
- open the AIXM-BR-SBVR.xml export file with Internet Explorer, or with any XSLT compatible tool (like an XML editor ).
The result in HTML tabular format looks like this:
Warning |
---|
The HTML export has an editorial issue - a <parameter> element appears in some places, after a line break. The new line is displayed as a white space in the Rule textual description and tagged description. For example, in rule D6D81 displayed below, there is a white space before the value 'M' (... equal-to ' M' has ... instead of ... equal-to 'M' has ...). This editorial issue is propagated in the Excel file created as explained further down. For system that used to import the Excel file with the rules and generate data verification code automatically, this can result into erroneous code. Until the script is corrected, this editorial issue can be resolved by editing the HTML file with a text editor able to do find/replace based on regular expressions and removing all the new line and whitespace that precede the element <parameter name=....>. For example, in OxygenXML this can be done using Find '\n\s*<parameter Replace '<parameter with "Regular expression" option enabled. |
...
Excel
...
<parameters>
<parameter name="Equipment">VOR</parameter>
</parameters>
</instance>
<instance uid="AIXM-5.1.1_RULE-1AA452">
<profiles>
<profile>
<name>eEAD</name>
<level>Warning</level>
</profile>
</profiles>
<parameters>
<parameter name="Equipment">DME</parameter>
</parameters>
</instance>
... |
Tabular format
First, an XSL stylesheet is used to convert the AIXM-BR-SBVR.xml export file into a single HTML table, where templates are instantiated.
Then, the HTML table was imported into Microsoft Excel. Here, the file was sorted by AIXM Class, AIXM Attribute and AIXM Associations. In addition, filters have been defined for the various 'Profile' columns.
The result in the form of en an Excel table looks like this: