[¤1]
PEP #: 11
[¤2]
TITLE: Adding Support for XML Character References
[¤3]
Version: 1.0
[¤4]
Authors: Roger Kumpf
[¤5]
State: Review
[¤6]
Type: Functionality enhancement
[¤7]
Created: January 31, 2003
[¤8]
Version History:
[¤9]
[¤18] Abstract: The XML specification defines Character References for specifying
characters using their numerical equivalents. For example, the character '1' could be
represented in XML as '1' or '1' using the decimal and hexadecimal
formats, respectively. Pegasus does not currently support this XML construct.
[¤19] Problem:
[¤20] Pegasus does not currently support XML character references. The
current behavior is to validate the format of these references, but leave them unprocessed.
This behavior may result in unexpected failures and data corruption.
[¤21] Solution:
[¤22] I propose to add support for XML character references in Pegasus. This enhancement
would entail code changes in the XmlParser::_substituteReferences() method to
recognize and substitute XML character references in addition to the current support
for character entities (such as '&').
[¤23] In addition, I propose to add tests for this enhancement by extending the wbemexec
test suite in the pegasus/test/wetest/static/ErrorXml directory.
[¤24] Schedule:
[¤25]
[¤46] Addendum:
[¤47] This change has been implemented and submitted to the "local" branch. Following is
the original COMMIT message associated with the submittal.
[¤48]
From: "Roger Kumpf"
Date: Wed, 4 Dec 2002 18:34:56 -0800
Subject: COMMIT-local: Added Support for XML Character References
I've committed support for XML character references in the "local" branch.
This enhancement allows character references to be correctly translated
into their character equivalents. For example, '1' and '1' would
both be translated to '1'.
This change has been tested on HP-UX, IA64 Linux, and Windows platforms.
Updated files:
pegasus/src/Pegasus/Common/XmlParser.cpp
pegasus/test/wetest/static/ErrorXml/Makefile
Added files:
pegasus/test/wetest/static/ErrorXml/BadCharacterReference01.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference02.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference03.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference04.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference05.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference06.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference07.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference01.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference02.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference03.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference04.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference01.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference02.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference03.xml
pegasus/test/wetest/static/ErrorXml/GoodEntityReference01.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference01rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference02rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference03rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference04rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference05rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference06rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadCharacterReference07rspgood.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference01rspgood.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference02rspgood.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference03rspgood.xml
pegasus/test/wetest/static/ErrorXml/GoodCharacterReference04rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference01rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference02rspgood.xml
pegasus/test/wetest/static/ErrorXml/BadEntityReference03rspgood.xml
pegasus/test/wetest/static/ErrorXml/GoodEntityReference01rspgood.xml