17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package javax.xml.catalog; 26 27 import java.net.MalformedURLException; 28 import java.net.URISyntaxException; 29 import java.util.HashMap; 30 import java.util.Map; 31 import jdk.xml.internal.SecuritySupport; 32 33 /** 34 * The CatalogFeatures holds a collection of features and properties. 35 * 36 * 37 * <table class="plain"> 38 * <caption>Catalog Features</caption> 39 * <thead> 40 * <tr> 41 * <th scope="col" rowspan="2">Feature</th> 42 * <th scope="col" rowspan="2">Description</th> 43 * <th scope="col" rowspan="2">Property Name</th> 44 * <th scope="col" rowspan="2">System Property [1]</th> 45 * <th scope="col" rowspan="2">jaxp.properties [1]</th> 46 * <th scope="col" colspan="2" style="text-align:center">Value [2]</th> 47 * <th scope="col" rowspan="2">Action</th> 48 * </tr> 49 * <tr> 50 * <th scope="col">Type</th> 51 * <th scope="col">Value</th> 52 * </tr> 53 * </thead> 54 * 55 * <tbody> 56 * 57 * <tr> 58 * <th scope="row" style="font-weight:normal">FILES</th> 59 * <td>A semicolon-delimited list of URIs to locate the catalog files. 60 * The URIs must be absolute and have a URL protocol handler for the URI scheme. 61 * </td> 62 * <td>javax.xml.catalog.files</td> 63 * <td>javax.xml.catalog.files</td> 64 * <td>javax.xml.catalog.files</td> 65 * <td>String</td> 66 * <th id="URIs" scope="row" style="font-weight:normal">URIs</th> 67 * <td> 68 * Reads the first catalog as the current catalog; Loads others if no match 69 * is found in the current catalog including delegate catalogs if any. 70 * </td> 71 * </tr> 72 * 73 * <tr> 74 * <th rowspan="2" scope="row" style="font-weight:normal">PREFER</th> 75 * <td rowspan="2">Indicates the preference between the public and system 76 * identifiers. The default value is public [3].</td> 77 * <td rowspan="2">javax.xml.catalog.prefer</td> 78 * <td rowspan="2">N/A</td> 79 * <td rowspan="2">N/A</td> 80 * <td rowspan="2">String</td> 81 * <th scope="row" id="system" style="font-weight:normal">{@code system}</th> 82 * <td> 83 * Searches system entries for a match; Searches public entries when 84 * external identifier specifies only a public identifier</td> 85 * </tr> 86 * <tr> 87 * <th scope="row" id="public" style="font-weight:normal">{@code public}</th> 88 * <td> 89 * Searches system entries for a match; Searches public entries when 90 * there is no matching system entry.</td> 91 * </tr> 92 * 93 * <tr> 94 * <th rowspan="2" scope="row" style="font-weight:normal">DEFER</th> 95 * <td rowspan="2">Indicates that the alternative catalogs including those 96 * specified in delegate entries or nextCatalog are not read until they are 97 * needed. The default value is true.</td> 98 * <td rowspan="2">javax.xml.catalog.defer [4]</td> 99 * <td rowspan="2">javax.xml.catalog.defer</td> 100 * <td rowspan="2">javax.xml.catalog.defer</td> 101 * <td rowspan="2">String</td> 102 * <th scope="row" id="true" style="font-weight:normal">{@code true}</th> 103 * <td> 104 * Loads alternative catalogs as needed. 105 * </td> 106 * </tr> 107 * <tr> 108 * <th scope="row" id="false" style="font-weight:normal">{@code false}</th> 109 * <td> 110 * Loads all catalogs[5]. </td> 111 * </tr> 112 * 113 * <tr> 114 * <th rowspan="3" scope="row" style="font-weight:normal">RESOLVE</th> 115 * <td rowspan="3">Determines the action if there is no matching entry found after 116 * all of the specified catalogs are exhausted. The default is strict.</td> 117 * <td rowspan="3">javax.xml.catalog.resolve [4]</td> 118 * <td rowspan="3">javax.xml.catalog.resolve</td> 119 * <td rowspan="3">javax.xml.catalog.resolve</td> 120 * <td rowspan="3">String</td> 121 * <th scope="row" id="strict" style="font-weight:normal">{@code strict}</th> 122 * <td> 123 * Throws CatalogException if there is no match. 124 * </td> 125 * </tr> 126 * <tr> 127 * <th scope="row" id="continue" style="font-weight:normal">{@code continue}</th> 128 * <td> 129 * Allows the XML parser to continue as if there is no match. 130 * </td> 131 * </tr> 132 * <tr> 133 * <th scope="row" id="ignore" style="font-weight:normal">{@code ignore}</th> 134 * <td> | 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package javax.xml.catalog; 26 27 import java.net.MalformedURLException; 28 import java.net.URISyntaxException; 29 import java.util.HashMap; 30 import java.util.Map; 31 import jdk.xml.internal.SecuritySupport; 32 33 /** 34 * The CatalogFeatures holds a collection of features and properties. 35 * 36 * 37 * <table class="plain" id="CatalogFeatures"> 38 * <caption>Catalog Features</caption> 39 * <thead> 40 * <tr> 41 * <th scope="col" rowspan="2">Feature</th> 42 * <th scope="col" rowspan="2">Description</th> 43 * <th scope="col" rowspan="2">Property Name</th> 44 * <th scope="col" rowspan="2">System Property [1]</th> 45 * <th scope="col" rowspan="2">jaxp.properties [1]</th> 46 * <th scope="col" colspan="2" style="text-align:center">Value [2]</th> 47 * <th scope="col" rowspan="2">Action</th> 48 * </tr> 49 * <tr> 50 * <th scope="col">Type</th> 51 * <th scope="col">Value</th> 52 * </tr> 53 * </thead> 54 * 55 * <tbody> 56 * 57 * <tr> 58 * <th scope="row" style="font-weight:normal" id="FILES">FILES</th> 59 * <td>A semicolon-delimited list of URIs to locate the catalog files. 60 * The URIs must be absolute and have a URL protocol handler for the URI scheme. 61 * </td> 62 * <td>javax.xml.catalog.files</td> 63 * <td>javax.xml.catalog.files</td> 64 * <td>javax.xml.catalog.files</td> 65 * <td>String</td> 66 * <th id="URIs" scope="row" style="font-weight:normal">URIs</th> 67 * <td> 68 * Reads the first catalog as the current catalog; Loads others if no match 69 * is found in the current catalog including delegate catalogs if any. 70 * </td> 71 * </tr> 72 * 73 * <tr> 74 * <th rowspan="2" scope="row" style="font-weight:normal" id="PREFER">PREFER</th> 75 * <td rowspan="2">Indicates the preference between the public and system 76 * identifiers. The default value is public [3].</td> 77 * <td rowspan="2">javax.xml.catalog.prefer</td> 78 * <td rowspan="2">N/A</td> 79 * <td rowspan="2">N/A</td> 80 * <td rowspan="2">String</td> 81 * <th scope="row" id="system" style="font-weight:normal">{@code system}</th> 82 * <td> 83 * Searches system entries for a match; Searches public entries when 84 * external identifier specifies only a public identifier</td> 85 * </tr> 86 * <tr> 87 * <th scope="row" id="public" style="font-weight:normal">{@code public}</th> 88 * <td> 89 * Searches system entries for a match; Searches public entries when 90 * there is no matching system entry.</td> 91 * </tr> 92 * 93 * <tr> 94 * <th rowspan="2" scope="row" style="font-weight:normal" id="DEFER">DEFER</th> 95 * <td rowspan="2">Indicates that the alternative catalogs including those 96 * specified in delegate entries or nextCatalog are not read until they are 97 * needed. The default value is true.</td> 98 * <td rowspan="2">javax.xml.catalog.defer [4]</td> 99 * <td rowspan="2">javax.xml.catalog.defer</td> 100 * <td rowspan="2">javax.xml.catalog.defer</td> 101 * <td rowspan="2">String</td> 102 * <th scope="row" id="true" style="font-weight:normal">{@code true}</th> 103 * <td> 104 * Loads alternative catalogs as needed. 105 * </td> 106 * </tr> 107 * <tr> 108 * <th scope="row" id="false" style="font-weight:normal">{@code false}</th> 109 * <td> 110 * Loads all catalogs[5]. </td> 111 * </tr> 112 * 113 * <tr> 114 * <th rowspan="3" scope="row" style="font-weight:normal" id="RESOLVE">RESOLVE</th> 115 * <td rowspan="3">Determines the action if there is no matching entry found after 116 * all of the specified catalogs are exhausted. The default is strict.</td> 117 * <td rowspan="3">javax.xml.catalog.resolve [4]</td> 118 * <td rowspan="3">javax.xml.catalog.resolve</td> 119 * <td rowspan="3">javax.xml.catalog.resolve</td> 120 * <td rowspan="3">String</td> 121 * <th scope="row" id="strict" style="font-weight:normal">{@code strict}</th> 122 * <td> 123 * Throws CatalogException if there is no match. 124 * </td> 125 * </tr> 126 * <tr> 127 * <th scope="row" id="continue" style="font-weight:normal">{@code continue}</th> 128 * <td> 129 * Allows the XML parser to continue as if there is no match. 130 * </td> 131 * </tr> 132 * <tr> 133 * <th scope="row" id="ignore" style="font-weight:normal">{@code ignore}</th> 134 * <td> |