Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DAFFODIL-2523

TDML defineSchema should have elementFormDefault 'unqualified' as default, and useDefaultNamespace 'false'

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.1.0
    • None
    • QA, TDML Runner
    • None

    Description

      In TDML, and most of our test files, tdml:defineSchema is used, and by default, for backward compatibility with earlier-authored tests, it creates a schema with elementFormDefault="qualified" and xmlns='http://example.com' as a default namespace, which is what the useDefaultNamespace attribute (which defaults to true) means.

      Both of those are inverted from what they should be.

      The preferred style for schemas is elementFormDefault 'unqualified', and to NOT assume any default namespaces (xmlns="....") unless it is explicitly setup by the test author on the tdml:testSuite or other element.

      The use of default namespaces causes many subtle interactions that can make namespace-sensitive testing hard to debug.

      Changing the defaults here will break several tests. At one point changing just useDefaultNamespace to 'false' was measured as causing 81 test failures, though they are concentrated in just a few test files.

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            mbeckerle Mike Beckerle
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: