Описание аннотации Полное XML- Шаблон

В этой таблице перечислены все элементы, атрибуты и значения XML, которые можно использовать для определения формата аннотации и сопоставления его с синтаксисом аннотации Polyspace. Пример редактирования XML-кода для определения синтаксиса аннотации см. в разделе «Определение пользовательского формата аннотации».

ЭлементПризнакИспользоватьЗначение
AnnotationsGroupНеобходимыйОпределяемая пользователем строка. Для примера, «Пользовательские аннотации»
ExpressionsSearch_For_KeywordsНеобходимыйОпределяемая пользователем строка. Эта строка является ключевым словом, которое вы включаете в шаблон синтаксиса аннотации, чтобы помочь идентифицировать его. Для примера, «myKeyword». Чтобы использовать несколько пользовательских аннотаций, введите разделенный запятыми список ключевых слов. См. «Определение нескольких пользовательских синтаксисов аннотаций».
Separator_Result_NameНеобходимыйОпределяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете несколько имен результатов Polyspace в одной аннотации. Например, «»
Separator_Family_And_Result_Name ДополнительныйОпределяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете несколько семейств результатов Polyspace в одной аннотации. Например, «»
Separator_FamilyДополнительныйОпределяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете семейство результатов Polyspace и имя результатов в той же аннотации. Для примера, «:»
ExpressionModeНеобходимыйSAME_LINE
GOTO_INCREMENT
BEGIN
END
END_ALL

NEXT_CODE_LINE

Аннотация применяется к следующей строке кода. Комментарии и пустые линии игнорируются.

GOTO_LABEL
LABEL
XML_START

XML_CONTENT

Аннотация для этого выражения должна быть в одной линии.

XML_END
RegexНеобходимыйСтрока поиска регулярного выражения, которая соответствует шаблону аннотации.
Rule_Identifier_PositionОбязательно, кроме тех случаев, когда вы настраиваете Mode="END_ALL" or "LABEL"

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Increment_PositionТребуется только при установке Mode="GOTO_INCREMENT"

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Status_Position Дополнительный

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Severity_Position Дополнительный

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Comment_Position Дополнительный

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Label_PositionТребуется только при установке Mode="GOTO_LABEL" or "LABEL"

Целое число. Целое значение этого атрибута соответствует количеству открывающих круглых скобок в регулярном выражении перед соответствующим поисковым выражением.

Case_Insensitive ДополнительныйПравда или ложь. Когда вы не объявляете этот атрибут, значение по умолчанию является false.
Is_Pragma Дополнительный

Правда или ложь. Когда вы не объявляете этот атрибут, значение по умолчанию является false.

Установите для этого атрибута значение true, если требуется объявить аннотацию с помощью прагмы вместо комментария.

Applies_Also_On_Same_LineДополнительный

Правда или ложь. Когда вы не объявляете этот атрибут, значение по умолчанию является true.

Используйте этот атрибут, чтобы включить применение аннотаций со старым синтаксисом Polyspace к той же строке кода.

MappingНичегоНичегоНичего
Result_Name_MappingRule_IdentifierНеобходимыйОпределяемый пользователем
FamilyНеобходимыйСоответствует семейству результатов Polyspace. Список допустимых значений см. в разделе «Допустимые значения».
Result_NameНеобходимыйСоответствует именам результатов Polyspace. Список допустимых значений см. в разделе «Допустимые значения».

Пример

Этот пример кода охватывает некоторые из менее часто используемых атрибутов для определения аннотаций в XML.

<?xml version="1.0" encoding="UTF-8"?>


<Annotations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="annotations_xml_schema.xsd"
             Group="XML Template">
			 
  <Expressions Separator_Result_Name=","
               Search_For_Keywords="myKeyword">
   
    <Expression Mode="GOTO_LABEL"
                Regex="(\A|\W)myKeyword\s+S\s+(\d+(\s*,\s*\d+)*)\s+([a-zA-Z_-]\w+)"
                Rule_Identifier_Position="2"
                Label_Position="4"
               
                />

     <Expression Mode="LABEL"
                Regex="(\A|\W)myKeyword\s+L:(\w+)"
                Label_Position="2"
                
                />
	 <!-- Annotation applies starting current line until
		next declaration of label word "myLabel"
         Example: 
		 
		 code; // myKeyword S 100 myLabel
		 ...
		 more code;
		 // myKeyword L myLabel
    -->
    
    <Expression Mode="BEGIN"
                Regex="#\s*pragma\s+myKeyword_MESSAGES_ON\s+(\w+)"
                Rule_Identifier_Position="1"
                Is_Pragma="true"
                />
	<!-- Annotation declared with pragma instead of comment
		Example:#pragma myKeyword_MESSAGES_ON 100 -->
	 

    <!-- Comment declaration with XML format-->
	
    <!-- XML_START must be declared before XML_CONTENT -->
    <Expression Mode="XML_START"
                Regex="<\s*myKeyword_COMMENT\s*>"
                
                />
	<!-- Example: <myKeyword_COMMENT>  -->
    
    <Expression Mode="XML_CONTENT"
                Regex="<\s*(\d*)\s*>(((?![*]/)(?!<).)*)</\s*(\d*)\s*>"
                Rule_Identifier_Position="1"
                Comment_Position="2"
                
                />
    <!-- Example: <100>This is my comment</100>
       XML_CONTENT must be declare on a single line.
	   
	   <100>This is my comment
	   </100> 
	   is incorrect. 
	   -->           
   
    <Expression Mode="XML_END"
                Regex="</\s*myKeyword_COMMENT\s*>"
                
                />
	<!--    Example: </myKeyword_COMMENT> -->
  </Expressions>

  <Mapping>
    
    <Result_Name_Mapping Rule_Identifier="100" Family="MISRA-C" Result_Name="4.1"/>
      </Mapping>
</Annotations>

См. также

Похожие темы