Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/resource/schema/rti_converter.xsd
T
torstenandCopilot 342ffd3e5c Update submodule to latest BUILD_RTI fixes
- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten
- svcTabCommon: Export-Header-Fix via Fallback-Target
- TrainingAreaBase: Stub-Header für BUILD_RTI=OFF
- ddsfts: Include-Pfad und Dependency-Fixes
- BUILD_RTI=OFF Compilation vollständig unterstützt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
2026-08-21 19:30:20 +02:00

790 lines
33 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
(c) Copyright, Real-Time Innovations, 2009-2016.
All rights reserved.
No duplications, whole or partial, manual or electronic, may be made
without express written permission. Any such copies, or
revisions thereof, must display this notice unaltered.
This code contains trade secrets of Real-Time Innovations, Inc.
-->
<!-- =================================================================== -->
<!-- RTI Converter XML Schema File -->
<!-- =================================================================== -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:include schemaLocation="definitions/rti_recorder_common_definitions.xsd" />
<!-- ================================================================== -->
<!-- Storage Settings -->
<!-- ================================================================== -->
<!-- Tags for the integrated CSV storage plugin in storageUtilsLib -->
<xs:complexType name="seqSizeLimitSettings">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="field_name_expr"
minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
<![CDATA[
Regular expression to match field names of unbounded
sequences.
The expression represents a pattern using the POSIX®
fnmatch syntax.
]]>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="max_size"
type="xs:nonNegativeInteger"
use="required">
<xs:annotation>
<xs:documentation>
<![CDATA[
Maximum number of elements to print for each matched
field.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="outputCsvSettings">
<xs:all>
<xs:element name="workspace_dir"
type="xs:string"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
This value indicates the absolute or relative path to
where the converted topic data file(s) are placed.
Default: current working directory of the executable.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="file_basename"
type="xs:string"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Prefix for the name of the generated file(s). The
file generated for each topic has the following name:
[file_basename]-[topic_name].
If merge_files is true, then the final file name is
equal to [file_basename].
Default: csv_converted
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="merge_files"
type="xs:boolean"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Specifies whether the generated files shall be
consolidated into a single file.
Default: true
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="default_member_value"
type="xs:string"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Sets the value used for data members that are not
present or empty e.g. optional members or bounded
sequences where all members may not be populated.
Default: nil
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="enum_as_string"
type="xs:boolean"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Indicates whether values for enumeration members
defined in IDL are printed as their corresponding
label string or as an integer.
Default: true
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="include_source_timestamp"
type="xs:boolean"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Indicates whether the source timestamp shall be
included in the output file.
Default: false
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="unbounded_seq_size_limits"
type="seqSizeLimitSettings"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Defines a collection of regular expressions to match
field names associated with unbounded sequences and the
maximum number of elements to print for each matched
field.
Fields that are not unbounded sequences are not
affected even if they match the expressions.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="outputSqliteSettings">
<xs:sequence>
<xs:element name="storage_format"
minOccurs="0"
type="sqliteStorageFormatKind" />
<xs:choice>
<xs:element name="fileset"
type="complexSqliteSettings" />
<xs:sequence>
<xs:element name="file"
type="xs:string"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The output file should be in a different
directory than the input's.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="file_suffix"
type="xs:string"
minOccurs="0" />
</xs:sequence>
</xs:choice>
<xs:element name="overwrite_policy_kind"
minOccurs="0"
type="overwritePolicyKind" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Defines what to do when database files are already
present in the current Converter execution directory.
There are two options:
- OVERWRITE: delete old files and replace them with
newly created ones.
- DO_NOT_TOUCH: do not delete any old files and just
exit.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sql_initialization_string"
minOccurs="0"
type="xs:string" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Allows configuring a SQLite SQL expression to use when
establishing sqlite output connections using this
plugin.
Default:
PRAGMA SYNCHRONOUS = OFF; PRAGMA JOURNAL_MODE = MEMORY;
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="rolloverSettings">
<xs:all>
<xs:element name="file_size_limit"
type="dataSize"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The maximum allowed size (orientative) for a file in a
set.
Converter only accepts limiting the files by size, and
not by time (which may seem obvious) like Recorder also
offers.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="complexSqliteSettings">
<xs:all>
<xs:element name="workspace_dir"
type="xs:string" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The workspace directory for Converter. This field is
mandatory and has to be different than the input's
<database_dir> directory.
If left empty, the current directory will be used.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="filename_expression"
type="xs:string"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The file name Converter will use for the generated user
data file(s).
This setting accepts text and any combination of the
following parameters in it:
- autonumeric. Format: %auto:M%. This parameter
describes an integer that auto-increments every
time recorder is started. In order words, an
unlimited sequence of numbers starting at M.
- timestamp. Format: %ts%. This parameter will take
the current timestamp in the system (the time
represented as number of seconds since Epoch).
- time. Format: %T%. Current time expressed in ISO
8601 time format (THHMMSS). Example: T145502.
This parameter uses the strftime() parameter %T.
- short date. Format: %F%. Short date in YYYY-MM-DD
format. Example: 2001-08-23.
This parameter uses the strftime() parameter %F.
Note: this parameter will not vary in 24 hours, so
use with caution when in combination with the
file size feature.
- date and time. Format: %c%. Date and time
representation, locale-dependent.
This parameter is based on the strftime() parameter %c
but we use the time expressed in ISO 8601
format (THHMMSS).
Example: Thu Aug 23 T145502 2001
Note: Converter one-shots all data in the old file(s)
out into the new file(s). This means that files can get
pretty big, pretty quickly. Thus, time-based parameters
(with minimum resolution of a second) have to be used
taking that into account, as well as the file size
limit. If no maximum file size is specified then none of
this will be a problem, as there will only be a single
output file.
Default: rti_recorder_default_%auto:0%.db (auto-numeric
starting at zero, unlimited).
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rollover"
type="rolloverSettings"
minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="inputSqliteSettings">
<xs:all>
<xs:element name="storage_format"
minOccurs="0"
type="sqliteStorageFormatKind" />
<xs:element name="database_dir"
type="xs:string" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The directory where to look for a recorded database.
The directory must contain a valid metadata file, as
well as a discovery file and one or many user data
files.
This field is optional and when not included, the
current directory will be used.
Default: the current directory.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sql_initialization_string"
minOccurs="0"
type="xs:string" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Allows configuring a SQLite SQL expression to use when
establishing sqlite input connections using this
plugin.
Default:
PRAGMA SYNCHRONOUS = OFF; PRAGMA JOURNAL_MODE = MEMORY;
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="domainMapType">
<xs:attribute name="legacy_domain_name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
<![CDATA[
Name of the recorded domain name as specified in the old
Recorder domain tag, example:
<domain name="domain0">.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="domain_id" type="xs:unsignedInt" use="required">
<xs:annotation>
<xs:documentation>
<![CDATA[
The domain ID to link the legacy domain name with.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="legacyDomainMapping">
<xs:sequence>
<xs:element name="domain_map"
type="domainMapType"
minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
<![CDATA[
A link between a recorded legacy domain name and a
domain participant defined below.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="converterLegacySettings">
<xs:all>
<xs:element name="file_path"
type="xs:string"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Path to the legacy format recorded file. File set and
version properties will be obtained automatically from
the file itself.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="domain_mapping"
type="legacyDomainMapping"
minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[
Latest versions of the old Recorder database allowed the
usage of field filters. This means that by default, the
domain ID field was not recorded (it was filtered out by
default). Thus, there is no information available in the
database to relate the domain name used to record the
data with the domain ID we're supplying in this
configuration. This tag allows the user to link legacy
domain names with domain participants defined below.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="inputStorageSettings">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="sqlite"
type="inputSqliteSettings"/>
<xs:element name="legacy"
type="converterLegacySettings"/>
<xs:element name="plugin"
type="storagePlugin"/>
</xs:choice>
<xs:element minOccurs="0"
name="max_samples_per_read"
type="xs:integer">
<xs:annotation>
<xs:documentation>
<![CDATA[
When defined, this value specifies the maximum number of
samples to be returned by the read() operation.
When the recorded tables contain huge amounts of samples
this setting can help improve the responsiveness of
Converter, because the tool won't - for each table -
attempt to get all samples at once.
If not specified, the default value is 1024 samples.
If a negative value means unlimited number of samples.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="outputStorageSettings">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="sqlite"
type="outputSqliteSettings"/>
<xs:element name="plugin"
type="storagePlugin"/>
<xs:element name="csv"
type="outputCsvSettings"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!-- =================================================================== -->
<!-- Domain selection configuration -->
<!-- =================================================================== -->
<xs:complexType name="domainSelection">
<xs:sequence>
<xs:element name="domain_id"
type="xs:nonNegativeInteger" />
<xs:element name="register_type"
type="registerType"
minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
Local registration of types is allowed.
This is useful when the types being converted were not
published via DDS discovery.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="entityNameAttrGroup">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
Participant name
]]>
</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
<!-- =================================================================== -->
<!-- Topic selection configuration -->
<!-- =================================================================== -->
<xs:complexType name="converterTopicGroup">
<xs:all>
<!-- Select topics/types -->
<xs:element name="allow_topic_name_filter"
minOccurs="0"
type="nameFilterList">
<xs:annotation>
<xs:documentation>
<![CDATA[
A regular expression describing which Topics should be
converted. Topics with names that match this filter are
allowed to be converted, unless they do not pass other
additional filters.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="deny_topic_name_filter"
minOccurs="0"
type="nameFilterList">
<xs:annotation>
<xs:documentation>
<![CDATA[
A regular expression describing which Topics should not
be converted. This is applied after the allow filter.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="participant_ref"
type="elementReference">
<xs:annotation>
<xs:documentation>
<![CDATA[
The name of the Domain ID (as defined in the
<domain_participant> tag) to use when converting this data.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="entityNameAttrGroup">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
Topic group name
]]>
</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
<xs:complexType name="converterTopic">
<xs:sequence>
<!-- DDS topic name -->
<xs:element name="topic_name"
type="xs:string"
minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
When defined, this represents the name of the DDS topic
to be converted. If not present, that name is taken from
the name attribute of the parent <topic> tag.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- Type associated with the topic -->
<xs:element name="registered_type_name"
type="xs:string"/>
<!-- Data manipulation -->
<xs:element name="transformation"
type="transformation"
minOccurs="0"/>
</xs:sequence>
<xs:attribute name="participant_ref"
type="elementReference">
<xs:annotation>
<xs:documentation>
<![CDATA[
The DomainParticipant (and domain) to use when converting
this data.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="entityNameAttrGroup">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
Name of this Converter topic description. If the
<topic_name> tag is not present, this will also be the name
of the DDS topic to be converted.
]]>
</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
<!-- ================================================================== -->
<!-- Replay Session Types -->
<!-- ================================================================== -->
<xs:complexType name="converterSession">
<xs:annotation>
<xs:documentation>
<![CDATA[
The session that will be used to convert data. The session
is associated with threads that convert the data and with a set
of Topics to convert.
]]>
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="thread_pool"
type="threadPoolSettings"
minOccurs="0" />
<xs:choice maxOccurs="unbounded">
<xs:element name="topic_group"
minOccurs="0"
maxOccurs="unbounded"
type="converterTopicGroup" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Group of Topics to convert
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="topic"
minOccurs="0"
maxOccurs="unbounded"
type="converterTopic" >
<xs:annotation>
<xs:documentation>
<![CDATA[
Single Topic to convert
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="default_participant_ref"
type="elementReference" >
<xs:annotation>
<xs:documentation>
<![CDATA[
The name of the default Domain ID (as defined in the
<domain_participant> tag) to use when converting this data.
]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="entityNameAttrGroup">
<xs:annotation>
<xs:documentation xml:lang="en-US">
<![CDATA[
Session name
]]>
</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
<!-- =================================================================== -->
<!-- Converter configuration -->
<!-- =================================================================== -->
<xs:complexType name="Converter">
<xs:sequence>
<!-- Input config -->
<xs:element name="input_storage"
minOccurs="1"
maxOccurs="1"
type="inputStorageSettings"/>
<!-- Output config -->
<xs:element name="output_storage"
minOccurs="1"
maxOccurs="1"
type="outputStorageSettings"/>
<!-- Data selection -->
<xs:element name="data_selection"
minOccurs="0"
type="dataSelection"/>
<!-- Domain selection -->
<xs:element name="domain_participant"
maxOccurs="unbounded"
type="domainSelection"/>
<!-- Session -->
<xs:element name="session"
minOccurs="0"
maxOccurs="unbounded"
type="converterSession"/>
</xs:sequence>
<xs:attributeGroup ref="entityNameAttrGroup"/>
<xs:attribute name="verbosity" type="xs:integer"/>
</xs:complexType>
<!-- =================================================================== -->
<!-- Root Element -->
<!-- =================================================================== -->
<xs:element name="dds">
<xs:annotation>
<xs:documentation>
<![CDATA[
Configuration of RTI Converter.
]]>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<!-- User Env -->
<xs:element name="configuration_variables"
type="KeyValuePairSeq">
<xs:annotation>
<xs:documentation>
<![CDATA[
Defines a set of default values for user variables.
The values specified in this section can be overridden
by command-line arguments, Library API, or
environment variables.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- Type definitions -->
<xs:element name="types">
<xs:annotation>
<xs:documentation>
<![CDATA[
Type definitions that can be used by Converter
]]>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="moduleElements"/>
</xs:complexType>
</xs:element>
<!-- Storage plugins -->
<xs:element name="plugin_library"
type="recorderPluginLibrary">
<xs:annotation>
<xs:documentation>
<![CDATA[
Specifies a library of storage plugins.
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- Converter Configuration -->
<xs:element name="converter"
type="Converter">
<xs:annotation>
<xs:documentation>
<![CDATA[
Specifies a named Converter instance
]]>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>