ARXML file example, and how to read one
ARXML is the XML exchange format of AUTOSAR: a system or ECU description with its signals, PDUs, frames and ports. Here is a real ECU extract excerpt, explained line by line, then how to read your own.
What is inside an ARXML file
Every ARXML file has one root element, <AUTOSAR>, whose namespace names the schema: http://autosar.org/schema/r4.0 for AUTOSAR 4, with the exact release in xsi:schemaLocation (AUTOSAR_00051.xsd in our example). Inside, AR-PACKAGE elements nest like folders, and each holds ELEMENTS.
Each element has a SHORT-NAME. The path of short names from the root is its AR-PATH, such as /NovairSample/Signals/DoorLockSts_FL: that is how one element refers to another (a …-REF element with a DEST attribute), and how a tool finds the same element in two versions of a file, whatever the order.
- I-SIGNAL: a signal, with its length, initial value and computation method (factor, offset, unit).
- I-SIGNAL-I-PDU: a PDU, with its length and the list of its signals, each at a start position and in a byte order.
- CAN-FRAME, LIN-FRAME, FLEXRAY-FRAME: the frame and its PDUs; the frame triggering on a cluster gives its ID.
- Ports, interfaces and software components: P-PORT-PROTOTYPE, R-PORT-PROTOTYPE, SENDER-RECEIVER-INTERFACE, APPLICATION-SW-COMPONENT-TYPE.
A signal
The sample extracts shipped with ARXML Compare describe a body controller ECU (written by Novair; no real vehicle). Here is the signal DoorLockSts_FL, novair-sample-body-ecu_v1.arxml, line 227:
<I-SIGNAL UUID="u-00000014"> <SHORT-NAME>DoorLockSts_FL</SHORT-NAME> <INIT-VALUE> <NUMERICAL-VALUE-SPECIFICATION> <VALUE>1</VALUE> </NUMERICAL-VALUE-SPECIFICATION> </INIT-VALUE> <LENGTH>2</LENGTH> <NETWORK-REPRESENTATION-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <COMPU-METHOD-REF DEST="COMPU-METHOD">/NovairSample/CompuMethods/CM_Text</COMPU-METHOD-REF> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </NETWORK-REPRESENTATION-PROPS> </I-SIGNAL>
LENGTH is in bits (2 bits here). INIT-VALUE is the value sent before the first real one. The COMPU-METHOD-REF points, by AR-PATH, to the computation method that turns raw values into physical values or text. The UUID is an identifier that many tools regenerate at each export: it says nothing about the signal.
Where the signal sits in its PDU
The position of a signal is not written in the signal but in a mapping inside the PDU. Here is the mapping of DoorLockSts_FL in PDU BCM_Status_01, line 2248:
<I-SIGNAL-TO-I-PDU-MAPPING UUID="u-00000096"> <SHORT-NAME>DoorLockSts_FL_ISM</SHORT-NAME> <I-SIGNAL-REF DEST="I-SIGNAL">/NovairSample/Signals/DoorLockSts_FL</I-SIGNAL-REF> <PACKING-BYTE-ORDER>MOST-SIGNIFICANT-BYTE-LAST</PACKING-BYTE-ORDER> <START-POSITION>12</START-POSITION> <TRANSFER-PROPERTY>TRIGGERED-ON-CHANGE</TRANSFER-PROPERTY> </I-SIGNAL-TO-I-PDU-MAPPING>
START-POSITION is the start bit, PACKING-BYTE-ORDER the byte order (MOST-SIGNIFICANT-BYTE-LAST is little endian, Intel; MOST-SIGNIFICANT-BYTE-FIRST is big endian, Motorola), and TRANSFER-PROPERTY says whether a change of the signal triggers a transmission.
The frame and its ID
The CAN ID is written on the frame triggering of the cluster, in decimal, line 3638:
<CAN-FRAME-TRIGGERING UUID="u-00000146"> <SHORT-NAME>FT_FR_BCM_Lights_01</SHORT-NAME> <FRAME-PORT-REFS> <FRAME-PORT-REF DEST="FRAME-PORT">/NovairSample/Ecus/DCU_FL/Conn_DCU_FL_CAN_Body/FP_FT_FR_BCM_Lights_01_OUT</FRAME-PORT-REF> <FRAME-PORT-REF DEST="FRAME-PORT">/NovairSample/Ecus/DCU_FR/Conn_DCU_FR_CAN_Body/FP_FT_FR_BCM_Lights_01_IN</FRAME-PORT-REF> <FRAME-PORT-REF DEST="FRAME-PORT">/NovairSample/Ecus/ESP/Conn_ESP_CAN_Body/FP_FT_FR_BCM_Lights_01_IN</FRAME-PORT-REF> </FRAME-PORT-REFS> <FRAME-REF DEST="CAN-FRAME">/NovairSample/Frames/FR_BCM_Lights_01</FRAME-REF> <CAN-ADDRESSING-MODE>STANDARD</CAN-ADDRESSING-MODE> <IDENTIFIER>673</IDENTIFIER> </CAN-FRAME-TRIGGERING>
673 in decimal is 0x2A1. The FRAME-PORT-REFS list the ECUs that send (…_OUT) and receive (…_IN) the frame.
How to open and read an ARXML file
An ARXML file is plain XML, so any text editor opens it, but a real extract runs to tens of thousands of lines, and the answer to a simple question (which signals are in this PDU, at which start bit?) is spread over several elements. A reader that follows the references does the work for you.
- Install ARXML Compare, free, from the VS Code Marketplace.
- Right-click an .arxml file in the Explorer, or use the “Open in ARXML Compare” button in the editor title.
- The tree shows the packages and elements by SHORT-NAME. Type the start of an AR-PATH to jump to an element, and see what it refers to and what refers to it.
- The tables show the communication matrix: each signal with its PDU, frame, ID, start bit, length, byte order, initial value, factor, offset, unit and senders. Copy a table as tab-separated text into a spreadsheet.
No VS Code at hand? The free online tool compares two ARXML files in your browser and counts the changes by domain: https://arxml-compare.novair.app/tools/compare-arxml-online/
Errors you may meet when opening an ARXML file
These are the messages ARXML Compare shows, produced by its own code from the test files it is checked against:
- The export was cut off or edited by hand: “malformed.arxml is not well-formed XML at line 290, column 17: expected end tag </SW-DATA-DEF-PROPS-VARIANTS> (opened at line 286), found </SW-DATA-DEF-PROPS-VARIANTS-BROKEN>. Elements read before this point are shown. Fix the file or ask for a new export.”
- An XML file that is not AUTOSAR: “not-autosar.xml is not an AUTOSAR file: its root element is <project>, not <AUTOSAR>.”
- A file saved in a mainframe or legacy encoding: “ibm037.arxml uses the IBM037 encoding, which ARXML Compare does not read. Save it as UTF-8.”
- An empty file: “empty.arxml is empty.”
- A folder with no .arxml file: “extract_2026-11 contains no .arxml file.”
A file cut off in the middle (a failed export, a truncated attachment) is the most common case: the elements read before the error are shown, and the line and column tell you where to look.
Frequently asked questions
Is ARXML the same as XML?
Yes: ARXML is XML whose root element is <AUTOSAR> and whose content follows the AUTOSAR schema. Any XML tool can open it; an ARXML reader also follows the AR-PATH references.
Where do ARXML files come from?
They are exported by the AUTOSAR authoring and configuration tools used by carmakers and suppliers: a system description, an ECU extract for one ECU, or a software component description.
Can I use this sample file?
Yes. It is written by Novair, describes no real vehicle and ships with the ARXML Compare extension: run “ARXML Compare: Try Pro on the Sample Extracts” to open both versions.
Open your own extract in VS Code
ARXML Compare is free in VS Code: tree, AR-PATH search, references, tables of signals, PDUs and frames, and the number of changes between two versions. Pro lists each change with its before and after values and writes the report to Excel, CSV or HTML. Your files stay on your machine.