Security and Connectivity for the IoT Edge



Efficient XML Parser/Framer for IoT Devices

RomXML® drastically decreases the time and effort needed to implement Extensible Markup Language in your embedded application

Embedded XML Parser/Framer Overview

Allegro’s RomXML® Parsing and Framing Toolkit drastically decreases the time and effort needed to implement Extensible Markup Language (XML) in your embedded application.

XML offers a processor-independent method to encode data for interchange between diverse systems and is based on a set of rules for the construction of tag-delimited information.


RomXML® – Embedded XML

When designing IoT applications, it is useful to leverage standards-based technology to exchange data between your embedded device and cloud-based resources. However, implementing a general-purpose XML parser will likely prove to be impractical. For typical embedded applications, the tag set or schema does not change. The primary need for an embedded XML Parser or Framer is to efficiently translate data between XML syntax and internal storage (typically a C structure). The Allegro RomXML® Parsing and Framing toolkit provides a lightweight translation between pre-defined C-language structures and XML-based representations.

XML Parsing and Framing

General purpose XML parsing and framing typically employ one of two common methods for dealing with XML. One approach is Simple API for XML (SAX). In the SAX approach, as a document is parsed, XML elements and attributes are passed to a user program for interpretation. The XML information and underlying structure are discarded in this parsing method once the data is passed to the user program. While this method doesn’t use much memory, it requires the user program to deal with XML in a sequential manner rather than as a whole entity. Since the XML syntax and underlying structure are discarded, SAX style parsers do not provide much support for the framing process.

RomXML Parser/Framer Diagram

The Second approach typically utilized is a method called the Document Object Model (DOM). A DOM parser recognizes that an XML document is a hierarchical data format and stores a tree structure representing both the underlying XML information and data. An API is provided to traverse the tree structure in any order and allows access to the entire XML document. Framing a new document is very straightforward since the XML data and overall structure is retained. However, the DOM method for parsing and framing documents is very memory intensive often utilizing over twice the memory of the original document. The RomXML® toolkit is designed for IoT devices that have limited resources and wish to use a more powerful method than SAX, without the overhead of DOM. For most IoT applications, devices do not need the ability to parse and frame general-purpose XML documents. However, IoTdevices do require the ability to efficiently translate device specific data between an internal format (such as a C structure) and XML syntax. This means the schema (XML element definitions) for a given document does not change and can be specified at compile time. The RomXML® toolkit provides a lightweight translation between pre-defined C-Language structures and XML formatted representations. This enables an embedded device to exchange data as well-formed XML documents without the overhead of general-purpose XML translators.


As part of the RomXML® toolkit, the TagBuilder compiler further decreases your development effort when utilizing XML in your embedded design. RomXML® uses a special set of tags (RxSchema) to define an XML object. The RxSchema language allows an XML object to be defined with both C-language internal storage format and the set of XML elements and attributes used with XML-based data exchange. The TagBuilder compiler analyzes the RomXML® RxSchema object definitions and produces an object definition file in a C-language source that is compiled with the RomXML® Parser and Framer code. The definition file contains the transfer tables that the runtime RomXML® code utilizes to perform specific translations.

Flexible Design

The RomXML® runtime is delivered in ANSI-C, is highly portable and offers a rich API for your development team to handle XML objects. RomXML® can handle XML datastreams transmitted with your proprietary communications methodologies or in connection with the Allegro EdgeAgent Suite of products. When used together with the rich Allegro EdgeAgent Suite, web services such as REST APIs, JSON, SOAP and XML-RPC are also available for use in your design.



Small code footprint More resource available for application features
ANSI C Source Code Distribution Broad processor architecture support eases porting and support
Processor, RTOS, and TCP/IP stack agnostic Allegro’s products will work with new or existing hardware and software designs
Interface files for leading RTOS vendors provided Minimizes porting effort, decreasing time to market
Shipping in millions or products worldwide Field-proven reliability
Pre-integrated with RomPager® Embedded Web Server and RomWebClient™ Embedded Web Client Save your development team time
GPL Free No licensing or development issues related to GPL
Translate XML syntax to and form embedded internal C-language structures Eliminates the need to design a flexible and resource sensitive XML framing and parsing framework with a proven fielded technology shipping in millions of devices worldwide
RomXML® TagBuilder XML pre-compiler Drastically reduces coding effort by analyzing object definitions and produces C-language source with structures pre-defined and ready to use with Parsing and Framing functions

W3C Recommendations 

System Requirements

  • Processor Architecture – Works with any 16-bit, 32-bit or 64-bit processor
  • Operating System (OS) – Works with any OS vendor and will function without an OS if needed
  • TCP/IP Stack – Works with any vendor implementation
  • Filesystem – Works with any vendor implementation and will function without a filesystem if needed
  • Compiler – ANSI C

Contact Us Today To Ensure Your IoT is Secure

Implementing IoT device security can be a challenge. Let us help you by sharing our proven framework for integrating a proactive security approach into your design. Click the button below to schedule a one-on-one web conference to discuss your security needs.

Check Out Our Other Products


The Allegro Cryptography Engine (ACE) is a platform independent, high performance, resource sensitive, embedded FIPS 140-2 Validated cryptography engine specifically engineered for the rigors of embedded computing.
Learn More


Embedded device security is always a concern when building a networked embedded device. Allegro’s RomSTL is a small, resource sensitive TLS client and server solution specifically written for use in IoT applications.
Learn More


RomSShell is a Secure Shell (SSH) toolkit that is often used in conjunction with RomCLI to deliver secure remote device management capabilities to many Internet of Things (IoT) applications. SSH provides encrypted communications between hosts over an insecure network.
Learn More


RomCert makes embedding security certificate management into resource sensitive IoT devices fast, easy and reliable while decreasing time to market.
Learn More


The Allegro EdgeAgent Suite is specifically engineered to meet the rigors of embedded computing while offering manufacturers access to the latest networking and embedded security technology to actively participate in the rapidly growing Internet of everything universe of devices.
Learn More


Allegro’s RomWebClient toolkit allows your engineering team to leverage proven Web technology when creating custom IoT devices. The RomWebClient toolkit enables embedded engineering teams to build products that send and receive objects to and from any Web server using HTTP with full support for IPv4 and IPv6 operation.
Learn More


Allegro’s RomXML Parsing and Framing Toolkit drastically decreases the time and effort needed to implement Extensible Markup Language (XML) in your embedded application. XML offers a processor-independent method to encode data for interchange between diverse systems and is based on a set of rules for the construction of tag-delimited information.
Learn More

RomXML Plus™

Allegro’s RomXML Plus development toolkit offers design engineers a comprehensive solution for building connectivity between IoT devices and enterprise IT environments utilizing web services technology. Web services are often utilized with IoT applications such as remote data collection, operations, industrial automation, sensor networks and monitoring applications.
Learn More


The RomCLI Command Line Interface toolkit is designed to speed the implementation of text line interfaces for embedded devices. In particular, the RomCLI toolkit supports command-line interfaces that look like Cisco IOS-style command systems. The RomCLI toolkit can work stand-alone or in conjunction with Allegro’s RomPager Web Server to provide unified variable access using common variable access routines.
Learn More

Download Allegro’s Playbook

  • This field is for validation purposes and should be left unchanged.

Contact Us Today

  • This field is for validation purposes and should be left unchanged.