XMLファイルフォーマット

各ファイルは、作成日時、バージョン情報、ファイル作成時に使用されたコマンドを内容としたヘッダからスタートします。

<?xml version="1.0" encoding="UTF-8"?>
<Header>
  <Title>QAC XML Output</Title>
  <Date>07/09/2018</Date> <Time>09:19:38</Time>
  <CreationCommand>/home/steve/Perforce/QAC-2019.1/common/lib/qacli view -P . -m
  <Version>2.4.0.9593-qax</Version>
</Header>

それに続くセクションで、処理されたファイルとそのファイルの絶対名が表示されます。

<File>
    <Name>/home/steve/.config/Perforce/QAC-2019.1/samples/main.cpp<Name>
            

注釈付きソースコードの出力が必要な場合、コードは対応する行番号と共に出力されます。

<File> <Source line="1">#include <iostream></Source>

その後、生成された各診断に対する個々の要素が出力されます。 診断の内容は‑‑xml‑formatおよび、‑‑formatオプションで制御されます。

<Diag id="1">
    <Line>0</Line>
    <Column>0</Column>
    <MsgNum>999</MsgNum>
    <MsgText> QAC++ディープフロー静的アナライザ4.3.0-41497</MsgText> 
</Diag>

診断は、0個または、1個以上のサブ診断を含みます。 サブ診断がある場合は、SubDiag 要素で表示され、増分型のIDを持つ属性がつきます。例:

<Diag id="94">
    <Line>119</Line>
    <Column>15</Column>
    <MsgNum>2647</MsgNum>
    <MsgText>このクラスは特殊メンバ関数を宣言する
        </MsgText>
    <SubDiag id="1">
        <Line>128</Line>
        <Column>3</Column>
        <MsgNum>1594</MsgNum>
        <MsgText>'MultipartHeader(::cgicc::MultipartHeader
            const &amp;)'ここで宣言</Msg> 
    </SubDiag>
    <SubDiag id="2">
        <Line>129</Line>
        <Column>4</Column>
        <MsgNum>1594</MsgNum>
        <MsgText>'~MultipartHeader()' ここで宣言</MsgText>
        </SubDiag>
</Diag>

解析エラーがあったかどうかと、解析処理のリターンコードの2つの要素がファイルの最後に表示されます。 リターンコードが0でなかった場合は、調査をする必要があります。

<AnalysisErrorCount>0</AnalysisErrorCount>

<AnalysisExitStatus>0</AnalysisExitStatus>

最後に、ファイルに解析診断がない場合、任意の要素が出力されます。

<NoDiagsOK>true</NoDiagsOK>

true(真)の値は、ファイルが解析されたけれども診断がないことを示します。 false(偽)の値は、ファイルが解析されていないことを示します。