This technote explains how to resolve an invalid XML character error that can occur when using IBM Rational RequisitePro.
When trying to open a Rational RequisitePro project using RequisiteWeb, or when trying to open a project package in RequisiteWeb, the following error occurs:
An error has occurred
Exception Occurred while Expanding the Packageorg.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x2) was found in the value of attribute "Name"
There are several known causes this behavior:
- It can be related to the requirement text including some special character, for example the pipe "|" character.
- Another cause is that the requirement text contains a footer.
If the requirement text contains such a character, and this requirement has no name assigned, it will display the first 55 characters of the requirement text in stead of the name and this part of the requirement text contains a footnote (or another special character).
- When the error occurs at project open time - it is one of the requirements in the project root.
- When the error occurs when opening a package, the requirement is inside that package.
Resolving the problem
In Microsoft Word first make sure you can see formatting marks and hidden text.
- You can check this in Microsoft Word 2003 or older versions by setting >Tools > Options > View > Formatting Marks section to 'All'.
- You can check this in Microsoft Word 2007 or newer versions by selecting the Office button >Word Options >Display >Show all formatting marks
This way you can see and make sure that you do not to (re)move any RequisitePro requirement tags.
There are various options to stop the error from occurring:
- Open the document with the RequisitePro client and move the footnote (or the special symbol) outside of the requirement text or remove it all together.
- Another option is to give a name to the requirement trough the requirement properties. This way the Requirement text will not show in the ReqPro explorer and in ReqWeb, but the name will show in stead.
- Move the footnote (or the special symbol) to a position in the requirement text after the 55th character.
Note: In options 2 and 3, the footnote will still be inside the requirement text - because of that you will not be able to change the requirement text from within RequisiteWeb, because that can not be done when the text contains a non-text character.
In that case you will see the following message when double clicking the requirement:
Text is Read Only: (Document requirement contains non-text characters.)