Описание аннотации полный шаблон 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 ДополнительныйTRUE или FALSE. Когда вы не объявляете этот атрибут, значение по умолчанию является ложным.
Is_Pragma Дополнительный

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

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

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

TRUE или FALSE. Когда вы не объявляете этот атрибут, значение по умолчанию верно.

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

Mapping'none''none''none'
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>

Смотрите также

Похожие темы