6.6.6. Fixes Related to XML Configuration
6.6.6.1. [Major] Parsing error loading XML configuration file containing a const whose expression refers to an enumerator
Connext failed to load an XML configuration file containing a const whose expression referred to an enumerator. For example:
<enum name="Enum1">
<enumerator name="Enumerator1" value="1"/>
</enum>
<const name="Const1" type="int32" value="Enumerator1+1"/>
Loading this XML failed with an error similar to this:
DDS_XMLConst_initialize:Parse error at line 10: type 'Enum1' is not typedef
This problem has been fixed.
[RTI Issue ID CORE-5553]
6.6.6.2. [Major] Parsing error loading an XML configuration file with enum type containing enumerator whose value was an expression
Connext failed to load an XML configuration file with an enum type containing an enumerator whose value was an expression. For example:
<enum name="Enum1">
<enumerator name="Enumerator1" value="1 + 1"/>
</enum>
Loading this XML failed with an error similar to this:
DDS_XMLEnum_on_start_tag:Parse error at line xy: integer expected
This problem has been fixed.
[RTI Issue ID CORE-10269]
6.6.6.3. [Major] Parsing error loading an XML configuration file with an enum type containing an enumerator whose value was an expression referring to another enumerator
Connext failed to load an XML configuration file with an enum type containing an enumerator whose value was an expression using another enumerator. For example:
<enum name="Enum1">
<enumerator name="Enumerator1" value="0"/>
</enum>
<enum name="Enum2">
<enumerator name="Enumerator2" value="Enumerator1"/>
</enum>
Loading this XML would have failed with an error similar to this:
DDS_XMLEnum_on_start_tag:Parse error at line xy: integer expected
This problem has been fixed.
[RTI Issue ID CORE-12781]
6.6.6.4. [Minor] Discrepancy between range defined by schema and that defined by API
There were discrepancies between the ranges defined by the schema files and those defined by the API for certain elements. This problem has been resolved. Now, validating an XML against the XSD should not fail when setting a value that is inside the range as defined by the API.
[RTI Issue ID CORE-7099]
6.6.6.5. [Minor] Parsing error loading XML configuration file with enum type containing enumerator whose value was an expression referring to a const
Connext failed to load an XML configuration file with an enum type containing an enumerator whose value was an expression referring to a const. For example:
<const name="Const1" type="int32" value="10"/>
<enum name="Enum1">
<enumerator name="Enumerator1" value="Const1"/>
</enum>
Loading this XML failed with an error similar to this:
DDS_XMLEnum_on_start_tag:Parse error at line xy: integer expected
This problem has been fixed.
[RTI Issue ID CORE-10060]
6.6.6.6. [Minor] Type limits not checked for some attributes of XML types definition
When XML was used for defining types (for example, when using DynamicData), type limits were not checked for some attributes. If the specified value for any of the attributes was too large or too small, a variable overflow occurred, leading to undefined behavior.
This problem is fixed. Type limits are checked, throwing a meaningful error when they are not met.
The affected attributes were as follows:
value in union’s caseDiscriminator. Valid values should be between -2147483648 and 2147483647.
sequenceMaxLength. Valid values should be between 0 and 2147483647. -1 (unbounded) is also allowed.
stringMaxLength. Valid values should be between 0 and 2147483647. -1 (unbounded) is also allowed.
arrayDimensions. Valid values should be between 1 and 4294967295.
[RTI Issue ID CORE-12181]
6.6.6.7. [Trivial] Removed some elements in the XSD that were not supported internally but could be defined in XML
The following elements were configurable in XML although internally they are not supported:
Publisher QoS:
presentation.drop_incomplete_coherent_set
asynchronous_publisher.thread.cpu_list
asynchronous_publisher.thread.cpu_rotation
asynchronous_publisher.asynchronous_batch_thread.cpu_list
asynchronous_publisher.asynchronous_batch_thread.cpu_rotation
asynchronous_publisher.topic_query_publication_thread.cpu_list
asynchronous_publisher.topic_query_publication_thread.cpu_rotation
Participant QoS:
discovery_config.publication_reader.min_app_ack_response_keep_duration
discovery_config.subscription_reader.min_app_ack_response_keep_duration
discovery_config.asynchronous_publisher.thread.cpu_list
discovery_config.asynchronous_publisher.thread.cpu_rotation
discovery_config.asynchronous_publisher.disable_asynchronous_batch
discovery_config.asynchronous_publisher.asynchronous_batch_thread
discovery_config.asynchronous_publisher.disable_topic_query_publication
discovery_config.asynchronous_publisher.topic_query_publication_thread
EventQosPolicy:
thread.cpu_list
thread.cpu_rotation
DatabaseQosPolicy:
thread.cpu_list
thread.cpu_rotation
Those elements have been removed from the XSD and are no longer configurable in XML.
[RTI Issue ID CORE-12366]
6.6.6.8. [Trivial] Builtin Discovery Plugins was not treated as a mask by the XSD file
Because of a bug in the XML Schema Definition (XSD), if you specified more than one value for the DiscoveryConfigQosPolicy::builtin_discovery_plugins mask, your XML editor reported that the expression was not valid when it should have been.
For example, according to the XSD, this expression was not allowed:
<domain_participant_qos>
<discovery_config>
<builtin_discovery_plugins>SPDP|SEDP</builtin_discovery_plugins>
</discovery_config>
</domain_participant_qos>
This issue has been fixed, and the XSD now accepts expressions containing more than one Builtin Discovery Plugin. This issue occurred only while editing XML files because of the schema. If you ran an application with the above configuration, it did not fail.
[RTI Issue ID CORE-12740]