XTCE 1.3 RTF Avatar
  1. OMG Issue

XTCE13 — Invalid schema exception with xerces parser

  • Key: XTCE13-130
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    We have experienced the following error with the Xerces XML parser:

    Exception thrown at 0x00007FFB902D4F69 in InstallDB4.exe: Microsoft C++ exception: xercesc_3_0::InvalidDatatypeValueException at memory location 0x000000000014D5A0.

    It seems to be driven by this line:
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0x0"/>

    Changing the default value to "0" seems to make the problem go away.

    Can we change the line instead to:
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0"/>

  • Reported: XTCE 1.2 — Thu, 20 Jan 2022 13:58 GMT
  • Disposition: Resolved — XTCE 1.3
  • Disposition Summary:

    Change idlePattern default value to zero

    This appears to be a schema processing error in Xerces, although that is not proven for sure. The union of types in FixedIntegerValueType appears not to be observed. Of course, troubles with other schema processors have certainly been seen in other areas.

    To be more friendly to the software, we propose to change the idlePattern attribute definition to remove the hexadecimal syntax in the default value instead to:
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0"/>

    The existing complexType element containing the definition above in original context with default="0x0":

    <complexType name="SequenceContainerType">
    <annotation>
    <documentation xml:lang="en">Describes the binary layout/packing of data and also related properties, including an entry list of parameters, parameter segments, array parameters, stream segments, containers, and container segments. Sequence containers may extend other sequence containers (see BaseContainerType). The parent container’s entries are placed before the entries in the child container forming one entry list. An inheritance chain may be formed using this mechanism, but only one entry list is being created. Sequence containers may be marked as "abstract", when this occurs an instance of it cannot itself be created. The idle pattern is part of any unallocated space in the container. See EntryListType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ContainerType">
    <sequence>
    <element name="EntryList" type="xtce:EntryListType">
    <annotation>
    <documentation xml:lang="en">List of item entries to pack/encode into this container definition.</documentation>
    </annotation>
    </element>
    <element name="BaseContainer" type="xtce:BaseContainerType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Optional inheritance for this container from another named container.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="abstract" type="boolean" default="false">
    <annotation>
    <documentation xml:lang="en">Abstract container definitions that are not instantiated, rather only used as bases to inherit from to create specialized container definitions.</documentation>
    </annotation>
    </attribute>
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0x0">
    <annotation>
    <documentation xml:lang="en">The idle pattern is part of any unallocated space in the container. This is uncommon.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

  • Updated: Tue, 1 Jul 2025 15:05 GMT