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

If an element is nil, child elements of this elements do not trigger a validation error

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.0.0, 3.0.1, 3.1.0, 3.1.1, 3.1.2, 3.2.0, 3.1.3, 3.1.4
    • Fix Version/s: 4.0.0
    • Labels:
      None
    • Environment:
      Windows XP, Microsoft Visual C++ 2008

      Description

      If an element is nil (xsi:nil="true") and this element has child elements, Xercesc 3.1.0 does not report an error, although it should.

      According to this link:
      http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cvc-elt
      an element that is nil may not have any content and any child elements.

      This behavior was also verified with Fujitsu's XWand XBRL Processor and Altovas XMLSpy, which both issue this error.

      It seems as if Xercesc tries to implement this behavior, given that the comments in SchemaValidator.cpp, line 129 are a direct copy of the mentioned web page:

      // if nillable, it's an error to have value
      // XML Schema REC: Validation Rule: Element Locally Valid (Element)
      // 3.2.1 The element information item must have no
      // character or element information item [children].
      //

      However, no error is issued in such a constellation.

      There is a related issue:

      If the first child element of the nilled value (which is not nil) has content, Xercesc issues the misguiding error message:

      Message: element '<name>' is nil and must be empty

      It seems, as if the nil-flag of the parent element is incorrectly set for the child element.

      For the second and all other child elements this is not the case (no error is reported).

      Steps to reproduce:

      Use the attached schema and instance document.
      Invoke the DOMCount-sample from the Xercesc-distribution like this:

      DOMCount.exe -v=always -s -n -f shiporder.xml

        Attachments

        1. shiporder.xml
          0.7 kB
          Andreas Awenius
        2. shiporder.xsd
          1 kB
          Andreas Awenius

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              awenius Andreas Awenius

              Dates

              • Created:
                Updated:

                Issue deployment