Issue 16013: XHTML integration does not work as expected
Issue 16014: Associations of RelationGroup are limited to XML document scope
Issue 16013: XHTML integration does not work as expected (reqif-rtf)
Click here for this issue's archive.
Source: ProSTEP iViP Association (Mr. Bertil Muth, bertil.muth(at)hood-group.com)
Nature: Revision
Severity: Critical
Summary:
A key feature of the Requirements Interchange Format is the ability to exchange formatted content (e.g. bulleted lists, text with fonts applied etc.) between requirements authoring tools. Transporting formatted content is implemented in ReqIF by the use of W3C’s XHMTL, and the XHTML integration does not work as proposed in the beta2 version of ReqIF, rendering the format almost useless for non-trivial exchanges. Background: In earlier, “non-OMG” versions of the Requirements Interchange Format, XHTML had already been incorporated, but using a proprietary, customized XHTML schema. For better compliance with international standards, XHTML has been incorporated using a XML schema driver for the beta2 OMG version. As only a subset of XHTML should be included, the project group needed to incorporate so-called XHTML XML schema “modules”, which proved to be a complex task. Not until the implementation of a ReqIF based transformation tool, it turned out that some XHTML element definitions were not pulled in from the W3C modules, but only their XML schema types. This currently makes it impossible to use these XHTML elements in XML documents conforming to the ReqIF XML schema. Resolution: Rewrite the XHTML schema driver (which incorporates XHTML in ReqIF), in a way that all needed XHTML elements can be used in ReqIF XML documents. In other words: replace the file driver.xsd with a new version that works as expected and adapt chapter 11.4 of the specification, which shows the content of driver.xsd, accordingly. This new version has already been created and tested by ProSTEP.
ReqIF uses two distinct ways to reference XML identifiers in its XML schema:
1. LOCAL-REF (which is used for XML references within the same XML document) and
2. GLOBAL-REF (which is used for arbitrary, meaning document scope or cross document, XML references).
By mistake, the XML references representing the associations of the RelationGroup type have been made LOCAL-REF references.
The consequence of the mistake is: the source specification and target specification associated to a RelationGroup instance must be contained in the same XML document as the RelationGroup instance, or otherwise the references would be broken and the XML document would not validate against the ReqIF XML schema.
Putting both the source specification, the target specification and the relation group in one XML document can significantly increase the size of XML documents.
Even more important, it would affect almost all exchange processes between companies and their suppliers who use older (pre-OMG) versions of Requirements Interchange Format, as they have been able to exchange single specifications and relation groups separately with these older versions.
This would be a step backwards for these companies and reduce their willingness to use tools that adopt the ReqIF standard.
Resolution:
Simply change two XML attributes in the ReqIF XML schema (lines: <xsd:element name="SPECIFICATION-REF") from LOCAL-REF to GLOBAL-REF as shown below :
Before resolution of the issue:
<xsd:complexType name="RELATION-GROUP">
<xsd:all>
…
<xsd:element maxOccurs="1" minOccurs="1" name="SOURCE-SPECIFICATION">
<xsd:complexType>
<xsd:choice maxOccurs="1" minOccurs="1">
<xsd:element name="SPECIFICATION-REF" type="REQIF:LOCAL-REF"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
…
<xsd:element maxOccurs="1" minOccurs="1" name="TARGET-SPECIFICATION">
<xsd:complexType>
<xsd:choice maxOccurs="1" minOccurs="1">
<xsd:element name="SPECIFICATION-REF" type="REQIF:LOCAL-REF"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
…
</xsd:complexType>
After resolution of the issue:
<xsd:complexType name="RELATION-GROUP">
<xsd:all>
…
<xsd:element maxOccurs="1" minOccurs="1" name="SOURCE-SPECIFICATION">
<xsd:complexType>
<xsd:choice maxOccurs="1" minOccurs="1">
<xsd:element name="SPECIFICATION-REF" type="REQIF:GLOBAL-REF"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
…
<xsd:element maxOccurs="1" minOccurs="1" name="TARGET-SPECIFICATION">
<xsd:complexType>
<xsd:choice maxOccurs="1" minOccurs="1">
<xsd:element name="SPECIFICATION-REF" type="REQIF:GLOBAL-REF"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
… </xsd:complexType>
As a side effect, the XML namespace needs to based on a new date (page 84 of the beta2 specification).