How to handle string data characters that are illegal in XML?
Consider this web service implemented in Java:
@WebMethod(operationName = "test1")
@WebResult(name = "test1", targetNamespace = "http://test.example.org/")
public String test1()
return "foou0000bar"; // "foo" + NUL + "bar"
Using (versions 2.5.10 and 2.7.18 of) apache CXF, this will return (SOAP envelope omitted):
<ns2:test1>foo[NULL byte here]bar</ns2:test1>
Which is invalid XML.
Do other web service libraries handle the NULL (and other characters that are invalid in XML) differently? What is the correct standard handling?
xml web-services cxf
add a comment |
Consider this web service implemented in Java:
@WebMethod(operationName = "test1")
@WebResult(name = "test1", targetNamespace = "http://test.example.org/")
public String test1()
return "foou0000bar"; // "foo" + NUL + "bar"
Using (versions 2.5.10 and 2.7.18 of) apache CXF, this will return (SOAP envelope omitted):
<ns2:test1>foo[NULL byte here]bar</ns2:test1>
Which is invalid XML.
Do other web service libraries handle the NULL (and other characters that are invalid in XML) differently? What is the correct standard handling?
xml web-services cxf
add a comment |
Consider this web service implemented in Java:
@WebMethod(operationName = "test1")
@WebResult(name = "test1", targetNamespace = "http://test.example.org/")
public String test1()
return "foou0000bar"; // "foo" + NUL + "bar"
Using (versions 2.5.10 and 2.7.18 of) apache CXF, this will return (SOAP envelope omitted):
<ns2:test1>foo[NULL byte here]bar</ns2:test1>
Which is invalid XML.
Do other web service libraries handle the NULL (and other characters that are invalid in XML) differently? What is the correct standard handling?
xml web-services cxf
Consider this web service implemented in Java:
@WebMethod(operationName = "test1")
@WebResult(name = "test1", targetNamespace = "http://test.example.org/")
public String test1()
return "foou0000bar"; // "foo" + NUL + "bar"
Using (versions 2.5.10 and 2.7.18 of) apache CXF, this will return (SOAP envelope omitted):
<ns2:test1>foo[NULL byte here]bar</ns2:test1>
Which is invalid XML.
Do other web service libraries handle the NULL (and other characters that are invalid in XML) differently? What is the correct standard handling?
xml web-services cxf
xml web-services cxf
edited Nov 13 '18 at 19:06
David Balažic
asked Nov 13 '18 at 12:13
David BalažicDavid Balažic
588638
588638
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The ideal is to have some XML mechanism for whatever the control character is meant to do.
If that isn't possible, or if you need to send non-characters for some reason (almost always a sign of a very bad idea, but you might have to deal with someone else's bad idea) then it's best sent as base-64 encoded or some other way of wrapping non-textual data in text.
add a comment |
Standard ways for handling XML content that would be invalid in XML is to use CDATA section(s) or base64-encoded values (preferably with base64Binary data type).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280783%2fhow-to-handle-string-data-characters-that-are-illegal-in-xml%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The ideal is to have some XML mechanism for whatever the control character is meant to do.
If that isn't possible, or if you need to send non-characters for some reason (almost always a sign of a very bad idea, but you might have to deal with someone else's bad idea) then it's best sent as base-64 encoded or some other way of wrapping non-textual data in text.
add a comment |
The ideal is to have some XML mechanism for whatever the control character is meant to do.
If that isn't possible, or if you need to send non-characters for some reason (almost always a sign of a very bad idea, but you might have to deal with someone else's bad idea) then it's best sent as base-64 encoded or some other way of wrapping non-textual data in text.
add a comment |
The ideal is to have some XML mechanism for whatever the control character is meant to do.
If that isn't possible, or if you need to send non-characters for some reason (almost always a sign of a very bad idea, but you might have to deal with someone else's bad idea) then it's best sent as base-64 encoded or some other way of wrapping non-textual data in text.
The ideal is to have some XML mechanism for whatever the control character is meant to do.
If that isn't possible, or if you need to send non-characters for some reason (almost always a sign of a very bad idea, but you might have to deal with someone else's bad idea) then it's best sent as base-64 encoded or some other way of wrapping non-textual data in text.
answered Nov 13 '18 at 14:38
Jon HannaJon Hanna
91.7k9112206
91.7k9112206
add a comment |
add a comment |
Standard ways for handling XML content that would be invalid in XML is to use CDATA section(s) or base64-encoded values (preferably with base64Binary data type).
add a comment |
Standard ways for handling XML content that would be invalid in XML is to use CDATA section(s) or base64-encoded values (preferably with base64Binary data type).
add a comment |
Standard ways for handling XML content that would be invalid in XML is to use CDATA section(s) or base64-encoded values (preferably with base64Binary data type).
Standard ways for handling XML content that would be invalid in XML is to use CDATA section(s) or base64-encoded values (preferably with base64Binary data type).
answered Nov 22 '18 at 3:29
apisimapisim
5026
5026
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280783%2fhow-to-handle-string-data-characters-that-are-illegal-in-xml%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown