Tuscany
  1. Tuscany
  2. TUSCANY-488

Global element of simple type problem

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: C++-SCA-Next
    • Fix Version/s: C++-SCA-Next
    • Component/s: C++ SDO
    • Labels:
      None
    • Environment:
      Windows XP

      Description

      When I read XML (via the XML DAS) that validates against an XSD with a GED
      with a complex type and then write it out again (via the XML DAS) the output
      matches the input, for example,

      IN XSD:
      <schema xmlns="..."
      <complexType name="ComplexTypeContentType">
      <sequence>
      <element name="SimpleTypeWithName" type="string"/>
      </sequence>
      </complexType>
      <element name="RootElement7" type="tns:ComplexTypeContentType"/>
      </schema>

      IN XML:
      <tns:RootElement7 xmlns:tns="...">
      <SimpleTypeWithName>SimpleTypeWithName</SimpleTypeWithName>
      </tns:RootElement7>

      OUT XML:
      <RootElement7 xmlns="...">
      <SimpleTypeWithName>SimpleTypeWithName</SimpleTypeWithName>
      </RootElement7>

      So all is well. When I repeat this execise with a GED with a simple type
      rather than a complex type then the output doesn't match the input.

      IN XSD:
      <schema xmlns="...">
      <simpleType name="SimpleTypeWithNameType">
      <restriction base="string"/>
      </simpleType>
      <element name="RootElement6" type="tns:SimpleTypeWithNameType"/>
      </schema>

      IN XML:
      <tns:RootElement6 xmlns:tns="... ">
      tns:RootElement1
      </tns:RootElement6>

      OUT XML:
      <RootElement6 xmlns="...">
      <RootElement6>tns:RootElement1</RootElement6>
      </RootElement6>

      SDO has problems problems working out how to hold onto the value of the simple type at the top level of the data object tree because, with a
      simple type, there is no data object to holds the property that is the simple type.

      GEDs of simple type don't occur that often in the real world but it is a likely candidate for the first simple test of a new user. Hence it gives
      a bad impression if it doesn;t work as expected.

      1. 488.xml
        0.1 kB
        Yang ZHONG
      2. fidelity.xsd
        3 kB
        Yang ZHONG

        Activity

        Simon Laws created issue -
        ant elder made changes -
        Field Original Value New Value
        Fix Version/s Cpp-current [ 12311062 ]
        Hide
        Yang ZHONG added a comment -

        Loaded Root Object shouldn't have been a RootType instance.
        In another word, XML Document Root Object shouldn't have been another XML Document.

        "fidelity.xsd" and "488.xml" are attached for the following Test Case:

        int sdotest::testFidelity()

        { DataFactoryPtr mdg = DataFactory::getDataFactory(); XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); xsh->defineFile("fidelity.xsd"); XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("488.xml"); DataObjectPtr root = myXMLDocument->getRootDataObject(); const char* p = root->getType().getName(); if(!strcmp(p, "RootType")) return 0; return 1; }
        Show
        Yang ZHONG added a comment - Loaded Root Object shouldn't have been a RootType instance. In another word, XML Document Root Object shouldn't have been another XML Document. "fidelity.xsd" and "488.xml" are attached for the following Test Case: int sdotest::testFidelity() { DataFactoryPtr mdg = DataFactory::getDataFactory(); XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); xsh->defineFile("fidelity.xsd"); XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("488.xml"); DataObjectPtr root = myXMLDocument->getRootDataObject(); const char* p = root->getType().getName(); if(!strcmp(p, "RootType")) return 0; return 1; }
        Yang ZHONG made changes -
        Attachment 488.xml [ 12348097 ]
        Attachment fidelity.xsd [ 12348096 ]
        Jean-Sebastien Delfino made changes -
        Fix Version/s Cpp-current [ 12311062 ]
        Fix Version/s Cpp-M3 [ 12312265 ]
        Jean-Sebastien Delfino made changes -
        Fix Version/s Cpp-Next [ 12312266 ]
        Fix Version/s Cpp-M3 [ 12312265 ]
        Jean-Sebastien Delfino made changes -
        Fix Version/s C++-SCA-Next [ 12312266 ]
        ant elder made changes -
        Fix Version/s C++-SCA-Next [ 12312266 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Simon Laws
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development