Uploaded image for project: 'Xerces-C++'
  1. Xerces-C++
  2. XERCESC-2115

XSD xs:union always collapses whitespace

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.1.4
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      Windows 7, likely also Mac and Linux but didn't check

      Description

      see: https://stackoverflow.com/questions/39755370/xerces-c-xml-xsd-union-always-collapsing-whitespace for longer discussion.

      I find that the problem doesn't care what I union with, or that I union with anything at all. So the simplest demonstration is to add these definitions to the above XSD.

        <xs:simpleType name="HellUnion">
          <xs:union memberTypes="Hello" />
        </xs:simpleType>
        <xs:element name="root2">
          <xs:complexType>
            <xs:attribute name="stuff" type="HellUnion" />
          </xs:complexType>
        </xs:element>
      

      Then Xerces-C rejects this XML as not valid:

      <?xml version="1.0" encoding="UTF-8" ?>
      <root2 stuff="Hello World&#x09;!" />
      I think the error message is enlightening:

      value 'Hello World !' does not match any member types of the union
      

      Notice the space before the '!' where the tab was previously.

      Microsoft .Net runtime XML/XSD system reports it as valid.

      I have tried adding whitespace=preserve to the "Hello" simple type definition:

        <xs:simpleType name="Hello">
          <xs:restriction base="xs:string">
            <xs:whiteSpace value="preserve"/>
            <xs:pattern value="Hello World&#x09;!"/>
          </xs:restriction>
        </xs:simpleType>
      

      This does not help.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              TallBrian Brian Chapman
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: