org.jpmml.converter.XMLUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jpmml-converter Show documentation
Show all versions of jpmml-converter Show documentation
Java library for authoring PMML
/*
* Copyright (c) 2018 Villu Ruusmann
*
* This file is part of JPMML-Converter
*
* JPMML-Converter is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JPMML-Converter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with JPMML-Converter. If not, see .
*/
package org.jpmml.converter;
public class XMLUtil {
private XMLUtil(){
}
static
public String createTagName(String string){
StringBuilder sb = new StringBuilder();
for(int i = 0; i < string.length(); i++){
char c = string.charAt(i);
boolean valid = (i == 0 ? isTagNameStartChar(c) : isTagNameContinuationChar(c));
if(valid){
sb.append(c);
} else
{
if(c == ' '){
sb.append("_x0020_");
} else
{
sb.append('_');
sb.append('x');
String hex = Integer.toHexString(c);
for(int j = 0; j < (4 - hex.length()); j++){
sb.append('0');
}
sb.append(hex);
sb.append('_');
}
}
}
return sb.toString();
}
static
private boolean isTagNameStartChar(char c){
switch(c){
case '_':
return true;
default:
return Character.isLetter(c);
}
}
static
private boolean isTagNameContinuationChar(char c){
switch(c){
case '-':
case '.':
case '_':
return true;
default:
return Character.isLetterOrDigit(c);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy