Skip to content

Commit 6adeaa7

Browse files
authored
Merge pull request #48 from hxc9/whitespace-validation
Fix #47 write white-space events as character events
2 parents 100eee2 + de337f0 commit 6adeaa7

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/main/java/com/ctc/wstx/sw/BaseStreamWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ public void copyEventFromReader(XMLStreamReader2 sr, boolean preserveEventData)
803803

804804
// 28-Mar-2017, tatu: Various optimization do not work well when validation so:
805805
if (mValidator != null) {
806-
writeCData(sr.getText());
806+
writeSpace(sr.getText());
807807
} else {
808808
sr.getText(wrapAsRawWriter(), preserveEventData);
809809
}

src/test/java/stax2/vwstream/W3CSchemaWrite23Test.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,30 @@ public class W3CSchemaWrite23Test
1010
{
1111
public void testSchemaValidatingCopy23() throws Exception
1212
{
13-
final String SCHEMA = "<?xml version='1.0' ?>\n"
14-
+"<xs:schema elementFormDefault='unqualified'\n"
15-
+" xmlns:xs='http://www.w3.org/2001/XMLSchema'>\n"
16-
+" <xs:element name='Document' type='xs:int'/>\n"
17-
+"</xs:schema>";
18-
final String CONTENT = "<Document>124</Document>";
13+
final String SCHEMA = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
14+
"<xs:schema elementFormDefault=\"unqualified\"\n" +
15+
" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n" +
16+
" <xs:element name=\"Document\">\n" +
17+
" <xs:complexType>\n" +
18+
" <xs:sequence>\n" +
19+
" <xs:element name=\"Paragraph\" type=\"xs:string\"/>\n" +
20+
" </xs:sequence>\n" +
21+
" </xs:complexType>\n" +
22+
" </xs:element>\n" +
23+
"</xs:schema>";
24+
final String CONTENT = "<Document>\n" +
25+
" <Paragraph>Hello world!</Paragraph>\n" +
26+
"</Document>";
1927
final String DOC = "<?xml version='1.0' encoding='UTF-8'?>\n"+CONTENT;
2028

2129

2230
StringWriter strw = new StringWriter();
2331
XMLStreamWriter2 xmlWriter = getSchemaValidatingWriter(strw, SCHEMA, false);
2432
XMLStreamReader2 xmlReader = constructNsStreamReader(DOC, false);
2533

34+
// For this test we need validation, otherwise the reader returns characters events instead of white-space events.
35+
xmlReader.validateAgainst(parseW3CSchema(SCHEMA));
36+
2637
while (xmlReader.hasNext()) {
2738
/*int type =*/ xmlReader.next();
2839
xmlWriter.copyEventFromReader(xmlReader, true);

0 commit comments

Comments
 (0)