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

Entradas populares