Java tutorial
//package com.java2s; /* // This software is subject to the terms of the Eclipse Public License v1.0 // Agreement, available at the following URL: // http://www.eclipse.org/legal/epl-v10.html. // You must accept the terms of that agreement to use this software. // // Copyright (C) 2003-2005 Julian Hyde // Copyright (C) 2005-2011 Pentaho // Copyright (c) 2008-2014 Open Link Financial, Inc. All Rights Reserved. */ import java.util.*; public class Main { /** * Invalid characters for XML element name. * * <p>XML element name: * * Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] * | [#xE000-#xFFFD] | [#x10000-#x10FFFF] * S ::= (#x20 | #x9 | #xD | #xA)+ * NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar * | Extender * Name ::= (Letter | '_' | ':') (NameChar)* * Names ::= Name (#x20 Name)* * Nmtoken ::= (NameChar)+ * Nmtokens ::= Nmtoken (#x20 Nmtoken)* * */ private static final String[] CHAR_TABLE = new String[256]; private static void initCharTable(String charStr) { char[] chars = charStr.toCharArray(); for (char c : chars) { CHAR_TABLE[c] = encodeChar(c); } } private static String encodeChar(char c) { StringBuilder buf = new StringBuilder(); buf.append("_x"); String str = Integer.toHexString(c); for (int i = 4 - str.length(); i > 0; i--) { buf.append("0"); } return buf.append(str).append("_").toString(); } private static <T> String toString(List<T> list) { StringBuilder buf = new StringBuilder(); int k = -1; for (T t : list) { if (++k > 0) { buf.append(", "); } buf.append(t); } return buf.toString(); } }