Interfaces de API de catálogo XML | Java
Acceda a la API del catálogo XML a través de sus interfaces.
Interfaces de API de catálogo XML
La API del catálogo XML define las siguientes interfaces:
- La interfaz Catalog representa un catálogo de entidades según lo definido por XML Catalogs, OASIS Standard V1.1, 7 de octubre de 2005. Un objeto Catalog es inmutable. Después de que se creó, el objeto Catalog se puede utilizar para encontrar coincidencias en un system, public o entrada uri. Una implementación de resolución personalizada puede resultar útil para localizar recursos locales a través de un catálogo.
- La clase CatalogFeatures contiene todas las características y propiedades de los soportes Catalog API, incluyendo javax.xml.catalog.files, javax.xml.catalog.defer, javax.xml.catalog.prefer, y javax.xml.catalog.resolve.
- La clase CatalogManager gestiona la creación de catálogos XML y resolutores de catálogos.
- La interfaz CatalogResolver es un solucionador de catálogos que implementa SAX EntityResolver, StAX XMLResolver, DOM LS LSResourceResolver utilizados por la validación del esquema y la transformación URIResolver. Esta interfaz resuelve referencias externas mediante catálogos.
Detalles de la clase CatalogFeatures
Las características del catálogo se definen colectivamente en la clase
CatalogFeatures. Las características se definen a nivel de API y de
sistema, lo que significa que se pueden configurar a través de la API, las
propiedades del sistema y las propiedades de JAXP. Para configurar una
característica a través de la API, use la clase CatalogFeatures.
El siguiente código establece javax.xml.catalog.resolve a "continue" para
que el proceso continúe incluso si no encuentra ninguna coincidencia en
CatalogResolver:
CatalogFeatures f = CatalogFeatures.builder().with(Feature.RESOLVE, "continue").build();
Para establecer la funcionalidad "continue" en todo el sistema, utilice la
línea de comandos de Java o el método System.setProperty:
System.setProperty(Feature.RESOLVE.getPropertyName(), "continue");
Para configurar la funcionalidad "continue" para toda la instancia de JVM,
ingrese una línea en el archivo jaxp.properties:
javax.xml.catalog.resolve = "continue"
La propiedad resolve, así como las propiedades prefer y defer, se pueden
establecer como un atributo del catálogo o entrada de grupo en un archivo de
catálogo. Por ejemplo, en el siguiente catálogo, el atributo resolve se
establece con un valor "continue" en la entrada del catálogo que indica al
procesador que continúe cuando no se encuentra ninguna coincidencia a través
de este catálogo. El atributo también se puede establecer en la entrada group
de la siguiente manera:
<?xml version="1.0" encoding="UTF-8"?>
<catalog
xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
resolve="continue"
xml:base="http://local/base/dtd/">
<group resolve="continue">
<system
systemId="http://remote/dtd/alice/docAlice.dtd"
uri="http://local/dtd/docAliceSys.dtd"/>
</group>
</catalog>
Las propiedades establecidas en un ámbito más estrecho anulan las que se
establecen en uno más amplio. Por lo tanto, una propiedad establecida a través
de la API siempre tiene preferencia.
Comentarios
Publicar un comentario