For advanced users, you can request or create an XSD schema from the Renolink developer (though not publicly documented). An XSD describes the exact rules for a valid XML file. If you have the XSD, you can validate using:
xmllint --schema renolink_schema.xsd yourfile.xml --noout
Without the official XSD, your best bet is to use a known working XML as a template and never deviate from its tag hierarchy.
Free tool from Microsoft that visually parses XML and shows a tree. If the tree collapses without error, the file is likely valid. renolink valid xml file
A file can be well-formed XML (correct tags, no syntax errors) but still be invalid for Renolink.
Basic well-formed rules (mandatory):
Renolink-specific validity means the file must match the internal schema expected by the software.
To ensure an XML file is valid for Renolink: For advanced users, you can request or create
| Check | Action |
|-------|--------|
| XML syntax | Validate with any XML validator (xmllint, online tools) |
| Encoding | UTF-8, no BOM |
| Root element | <renolink> or <ecu> (case-sensitive) |
| CAN IDs | Hex format with 0x prefix, within 0x700-0x7FF for 11-bit |
| No trailing commas/spaces in hex values | 0x7E0 not 0x7E0 |
| Referenced diag files exist | The diag_file attribute must point to an existing file in the same folder |
| No CDATA misuse | CDATA is allowed but rarely needed; avoid inside numeric fields |
| Closing tags | Every <request> needs </request> |
| No comments inside tags | <ecu <!-- comment -->> is invalid |
If Renolink rejects a file you are trying to load, it is usually due to one of the following reasons: Without the official XSD, your best bet is
During testing, the following invalid patterns were identified:
| Error Type | Example of Invalid Code | Consequence |
| :--- | :--- | :--- |
| Missing closing tag | <value>FF | Software parsing stops; error code -1. |
| Invalid character | param&value | XML parser exception. |
| Wrong case sensitivity | <PARAMETER> instead of <parameter> | Element ignored by Renolink. |
| Unescaped special char | 1 < 2 | Must be 1 < 2 |