1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 /* 19 * $Id: XMLCharacterRecognizer.java 468655 2006-10-28 07:12:06Z minchau $ 20 */ 21 package org.apache.xml.utils; 22 23 /** 24 * Class used to verify whether the specified <var>ch</var> 25 * conforms to the XML 1.0 definition of whitespace. 26 * @xsl.usage internal 27 */ 28 public class XMLCharacterRecognizer 29 { 30 31 /** 32 * Returns whether the specified <var>ch</var> conforms to the XML 1.0 definition 33 * of whitespace. Refer to <A href="http://www.w3.org/TR/1998/REC-xml-19980210#NT-S"> 34 * the definition of <CODE>S</CODE></A> for details. 35 * @param ch Character to check as XML whitespace. 36 * @return =true if <var>ch</var> is XML whitespace; otherwise =false. 37 */ isWhiteSpace(char ch)38 public static boolean isWhiteSpace(char ch) 39 { 40 return (ch == 0x20) || (ch == 0x09) || (ch == 0xD) || (ch == 0xA); 41 } 42 43 /** 44 * Tell if the string is whitespace. 45 * 46 * @param ch Character array to check as XML whitespace. 47 * @param start Start index of characters in the array 48 * @param length Number of characters in the array 49 * @return True if the characters in the array are 50 * XML whitespace; otherwise, false. 51 */ isWhiteSpace(char ch[], int start, int length)52 public static boolean isWhiteSpace(char ch[], int start, int length) 53 { 54 55 int end = start + length; 56 57 for (int s = start; s < end; s++) 58 { 59 if (!isWhiteSpace(ch[s])) 60 return false; 61 } 62 63 return true; 64 } 65 66 /** 67 * Tell if the string is whitespace. 68 * 69 * @param buf StringBuffer to check as XML whitespace. 70 * @return True if characters in buffer are XML whitespace, false otherwise 71 */ isWhiteSpace(StringBuffer buf)72 public static boolean isWhiteSpace(StringBuffer buf) 73 { 74 75 int n = buf.length(); 76 77 for (int i = 0; i < n; i++) 78 { 79 if (!isWhiteSpace(buf.charAt(i))) 80 return false; 81 } 82 83 return true; 84 } 85 86 /** 87 * Tell if the string is whitespace. 88 * 89 * @param s String to check as XML whitespace. 90 * @return True if characters in buffer are XML whitespace, false otherwise 91 */ isWhiteSpace(String s)92 public static boolean isWhiteSpace(String s) 93 { 94 95 if(null != s) 96 { 97 int n = s.length(); 98 99 for (int i = 0; i < n; i++) 100 { 101 if (!isWhiteSpace(s.charAt(i))) 102 return false; 103 } 104 } 105 106 return true; 107 } 108 109 } 110