[June 30, 2000] "Spacecraft Markup Language (SML) is an extension of the Extensible Markup Language (XML) providing the Space Community with a standard definition of XML tags and concepts of structure to allow the definition of spacecraft and other support data objects. The SML reserved tags are defined within this document, as well as the requirements for data definition. The intent is to provide a language that allows the user extensive flexibility, while preserving cross-vendor compatibility with an open standard."
"The purpose of Spacecraft Markup Language (SML) is to extend XML to provide a standardized representation to be used in the space domain. The data that is being described and contained within SML can be commands, telemetry, abstract messages, science data, etc. The database to be defined by SML can contain some or all of the following: Commands, Telemetry Packets, Application messages, Events, Science data, status information for logging, etc. To create an orderly and clearly defined structure of the data to be processed, a definition of scope for the data objects can be defined that allow the data items to be processed by the software system using a protocol stack approach. The SML structure provides an object-oriented way to describe the structure of a database. With this structure, a protocol stack can be implemented that allows the low level data "objects" to be encapsulated, or wrapped by outer layers. The wrapping of the data allows the user to constrain the development scope, leaving the details of data routing and data query information to an outer layer..."
Background: "As space hardware becomes faster, space applications become more capable, and as a result also become more complex. With this complexity the definition of the command and telemetry databases required to monitor and control these applications, take more and more time to develop. Although every ground system vendor has their own proprietary tools and data formats to define these databases, there is a definite need for standardization to allow spacecraft and mission designers to design the control systems in a standard format. CCSDS and other packet definitions define protocols for passing data from one device to another, but the contents of those packets needs to be defined and described within a standard. There have been a number of "languages" used to define the formats and contents of command and telemetry messages (or packets). One such language called "Record Definition Language" (RDL). (RDL was developed by GSFC for use in their ASIST ground system). RDL is a good starting point, but not accepted as a standard. One strong point for RDL is the use of ASCII to define the data items within packets for portability across platforms. RDL has the language provisions to clearly represent the record formats for commands and telemetry, but is limited in its ability to be extended. Another detriment is the fact that each vendor would need to write RDL compilers for their use. As RDL language evolves, and the RDL structures change. This specification is intended to define a standard representation for describing the contents of the data streams that go to and from applications. These applications can be distributed within a network, across a continent, or between ground and space flight systems. The protocol used to transport the message is not addressed. There has been an underlying assumption that the data will be placed in packets of one kind or another for transportation. This specification proposes a space application extension to "Extensible Markup Language" (XML) for describing both the message definition (the schema), and the contents of specific messages (instances of messages) for commands, telemetry, archiving, and even inter-application communications. The constructs are largely based upon the structures provided in RDL, but are defined in the language itself. This approach provides greater flexibility when the user needs to extend the language, while still remaining conformant to the standard."
From the appendices of the specification: Appendix A. Index of reserved SML Tags; Appendix B. Command Database Example; Appendix C. Telemetry Packet Definition Example; Appendix D. Message Definition Example; Appendix E. Database Schema Example; Appendix F. Database Records Example; Appendix G. Logging Example; Appendix H. SML Schema.