/*
* Copyright (c) 2012 Chris Ellison, Mike Deats, Liron Yahdav, Ryan Neal,
* Brandon Sutherlin, Scott Griffin
*
* This software is released under the MIT license
* (http://www.opensource.org/licenses/mit-license.php)
*
* Created on Feb 23, 2012
*/
package edu.cmu.sv.arinc838.validation;
public class XmlFormatter {
/**
* Returns a string with special XML characters escaped:
* <ol>
* <li>'<' becomes {@literal '<'}</li>
* <li>'>' becomes {@literal '>'}</li>
* <li>'&' becomes {@literal '&'}</li>
* </ol>
* @param value
* @return
*/
public static String escapeXmlSpecialChars(String value) {
String unescaped = value;
// if any chars are are already escaped, unescape them first
// this will handle strings that are partially escaped
try {
new DataValidator().checkForEscapedXMLChars(value);
} catch (IllegalArgumentException e) {
unescaped = unescapeXmlSpecialChars(value);
}
return unescaped.replaceAll("&", "&").replaceAll(">", ">")
.replaceAll("<", "<");
}
/**
* Returns a string with escaped special XML characters reverted to plain characters:
* <ol>
* <li>{@literal '<'} becomes '<'</li>
* <li>{@literal '>'} becomes '>'</li>
* <li>{@literal '&'} becomes '&'</li>
* </ol>
* @param value
* @return
*/
public static String unescapeXmlSpecialChars(String value) {
return value.replaceAll("<", "<").replaceAll(">", ">")
.replaceAll("&", "&");
}
}