Versions Compared

Key

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

...

Code Block
languagexml
themeConfluence
firstline1
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="AIXM<AIXM-BR-SBVR.xsl"?><AIXM-BR-SBVR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 	criteriaUIDcriteriaAIXMversion="5.1..1" 	criteriaTextcriteriaProfile="..."
	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 -->eEAD:Warning, eEAD:Error" exportedAt="2023-07-31T12:56:35.834774Z" xsi:noNamespaceSchemaLocation="AIXM-BR-SBVR.xsd">
  <rule uid="AIXM-5.1.1_RULE-1C9C38">
    <profiles>
      <profile>
        <name>eEAD</name>
        <level>Error</level>
      </profile>
    </profiles>
    <name>Minimal feature properties for DME</name>
    <aixm_class>DME</aixm_class>
    <aixm_attributes>channel, ghostFrequency</aixm_attributes>
    <aixm_association/>
    <sbvr>
      <keyword>It is prohibited that</keyword>
      <noun_concept>DMETimeSlice</noun_concept>
 <profiles>     <verb_concept>has</verb_concept>
       <!-- for each applicable profile, include a profile element here. --><noun_concept>channel</noun_concept>
      <keyword>value unspecified</keyword>
      <keyword>and</keyword>
      <profile>
				<name>EAD</name>
				<level>Error</level>
			</profile><noun_concept>DMETimeSlice</noun_concept>
      <verb_concept>has</verb_concept>
      <profile>
				<name>etc. if applicable</name>
				<level>...</level>
			</profile><noun_concept>ghostFrequency</noun_concept>
      <keyword>value unspecified</keyword>
    </profiles>sbvr>
    <comments>Each DME must have <!-- 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>
        <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', either channel or ghost frequency</comments>
    <diagnostics>Found DME with neither channel not ghorstFrequency assigned values. Backwards mapping to AIXM 4.5 is impossible.</diagnostics>
    <timeslice>baseline outside delta, snapshot, set of snapshots</timeslice>
    <category>Minimal data rule</category>
    <source>EAD</source>
    <reference>EAD</reference>
    <context>It is prohibited that DV and DV</context>
    <remarks/>
  </rule>
  <template uid="C6F98">
    <profiles>
      <profile>
        <name>eEAD</name>
        <level>Error</level>
      </profile>
    </profiles>
    <name>Unique AIXM 4.5 natural key for ${feature} - attribute and association</name>
    <aixm_class>${feature}</aixm_class>
    <aixm_attributes>${property}</aixm_attributes>
    <aixm_association>${association}</aixm_association>
    <sbvr>
      <keyword>It is prohibited that</keyword>
      <noun_concept>${feature}[1]</noun_concept>
      <verb_concept>has</verb_concept>
      <noun_concept>timeslice.${feature}TimeSlice.${property}</noun_concept>
      <keyword>value</keyword>
      <keyword>equal-to</keyword>
      <noun_concept>${feature}[2].timeslice.${feature}TimeSlice.${property}</noun_concept>
      <keyword>value</keyword>
      <keyword>and</keyword>
      <noun_concept>${feature}[1].timeslice.${feature}TimeSlice.${role}@xlink:href</noun_concept>
      <verb_concept>references-to</verb_concept>
      <noun_concept>${parent_feature}[3]</noun_concept>
      <keyword>and</keyword>
      <noun_concept>${feature}[2]timeslice.${feature}TimeSlice.${role}@xlink:href</noun_concept>
      <verb_concept>references-to</verb_concept>
      <noun_concept>${parent_feature}[3]</noun_concept>
    </sbvr>
    <comments>There cannot exists two different ${feature} that have identical values for ${property} and ${association} same ${parent_feature}</comments>
    <diagnostics>Found two different ${feature} that have identical values for ${property} and ${association} same ${parent_feature}. Backwards mapping to AIXM 4.5 is impossible.</diagnostics>
    <timeslice>set of snapshots</timeslice>
    <category>Standard (ICAO, industry, etc.)</category>
    <source>AIXM 4.5</source>
    <reference>AIXM 4.5 Uid</reference>
    <context>It is prohibited that VVV and RF and RF</context>
    <remarks>Note that "references-to" is used instead of comparing directly the values of the two xlink:href attributes in order to also cover the case when different coding (internal versus abstract) is used for the two references. Note that "parent_feature" has suffix "[3]" in order to highlight that it is the same occurrence that is concerned</remarks>
    <instances>
      <instance uid="AIXM-5.1.1_RULE-C6F99">
        <profiles>
          <profile>
      'urn:ogc:def:crs:EPSG::4312',      <name>eEAD</name>
           'urn:ogc:def:crs:EPSG::4215',  <level>Error</level>
          </profile>
     'urn:ogc:def:crs:EPSG::4801',   </profiles>
        <parameters>
     'urn:ogc:def:crs:EPSG::4149',     <parameter name="property">designator</parameter>
          <parameter  'urn:ogc:def:crs:EPSG::4275',name="feature">RunwayDirection</parameter>
          <parameter name="parent_feature">Runway</parameter>
      'urn:ogc:def:crs:EPSG::4746',    <parameter name="association">uses</parameter>
          <parameter name="role">usedRunway</parameter>
  'urn:ogc:def:crs:EPSG::4121',      </parameters>
      </instance>
    'urn:ogc:def:crs:EPSG::4658',</instances>
                 '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>
        <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:

  1. copy the AIXM-BR-SBVR.xsl transformation file next to the AIXM-BR-SBVR.xml export file,
  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 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.

...

</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:

  1. copy the AIXM-BR-SBVR.xsl transformation file next to the AIXM-BR-SBVR.xml export file,
  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 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.

UIDProfile: eEADRule textual descriptionRule tagged descriptionRule structureCommentsDiagnosticsAIXM ClassAIXM AttributesAIXM AssociationsName
AIXM-5.1.1_RULE-D8CC1ErrorIt is prohibited that AerialRefuellingAnchor has speedLimit value and AerialRefuellingAnchor has speedLimit@uom value unspecified <keyword>It is prohibited that</keyword><noun_concept> AerialRefuellingAnchor</noun_concept><verb_concept>has</verb_concept><noun_concept> speedLimit</noun_concept><keyword>value</keyword><keyword>and</keyword><noun_concept> AerialRefuellingAnchor</noun_concept><verb_concept>has</verb_concept><noun_concept> speedLimit@uom</noun_concept><keyword>value</keyword><keyword>unspecified</keyword>It is prohibited that DV and DVThe Unit of measurement shall be specified if a value is specified for a property with uom attribute.Found AerialRefuellingAnchor with assigned speedLimit value missing unit of measurementAerialRefuellingAnchorspeedLimit
Mandatory unit of measurement
AIXM-5.1.1_RULE-D8CC2ErrorIt is prohibited that AerialRefuellingAnchor has legSeparation value and AerialRefuellingAnchor has legSeparation@uom value unspecified <keyword>It is prohibited that</keyword><noun_concept> AerialRefuellingAnchor</noun_concept><verb_concept>has</verb_concept><noun_concept> legSeparation</noun_concept><keyword>value</keyword><keyword>and</keyword><noun_concept> AerialRefuellingAnchor</noun_concept><verb_concept>has</verb_concept><noun_concept> legSeparation@uom</noun_concept><keyword>value</keyword><keyword>unspecified</keyword>It is prohibited that DV and DVThe Unit of measurement shall be specified if a value is specified for a property with uom attribute.Found AerialRefuellingAnchor with assigned legSeparation value missing unit of measurementAerialRefuellingAnchorlegSeparation
Mandatory unit of measurement

Excel

Finally, the HTML table was imported in Microsoft Word and then copied into 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 Excel table looks like this:Image Removed