Package ro.sync.exml.workspace.api.util
Interface XMLUtilAccess
-
- All Known Subinterfaces:
AuthorXMLUtilAccess
@API(type=NOT_EXTENDABLE, src=PUBLIC) public interface XMLUtilAccess
XML Utilities- Since:
- 11.2
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
EXTENSION_NS
Namespace for XPath extension functions.static java.lang.String
EXTENSION_PREFIX
Predefined prefix for XPath extension function.static int
TRANSFORMER_SAXON_6
Saxon 6 transformerstatic int
TRANSFORMER_SAXON_ENTERPRISE_EDITION
Deprecated.Since Oxygen 23 you can no longer create Saxon 9 PE transformers using this constant.static int
TRANSFORMER_SAXON_HOME_EDITION
Saxon 9 Home Edition transformer type (no extensions support).static int
TRANSFORMER_SAXON_PROFESSIONAL_EDITION
Deprecated.Since Oxygen 23 you can no longer create Saxon 9 PE transformers using this constant.static int
TRANSFORMER_XALAN
Xalan transformer
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addPriorityEntityResolver(org.xml.sax.EntityResolver entityResolver)
Add a priority entity resolver.void
addPriorityURIResolver(javax.xml.transform.URIResolver uriResolver)
Add a priority URI resolver.javax.xml.transform.Transformer
createSaxon9HEXSLTTransformerWithExtensions(javax.xml.transform.Source styleSource, net.sf.saxon.lib.ExtensionFunctionDefinition[] saxonExtensions)
Create a Saxon 9 Home Edition transformer with the specified extension functions.javax.xml.transform.Transformer
createSaxon9XSLTTransformerWithExtensions(javax.xml.transform.Source styleSource, net.sf.saxon.lib.ExtensionFunctionDefinition[] extensionFunctions, int transformerType)
Create a Saxon 9 Home Edition transformer with the specified extension functions.javax.xml.transform.Transformer
createXQueryTransformer(javax.xml.transform.Source xquerySource, java.net.URL[] extensionJars, int transformerType)
Create a new XQuery transformer.javax.xml.transform.Transformer
createXQueryTransformer(javax.xml.transform.Source xquerySource, java.net.URL[] extensionJars, int transformerType, boolean useOxygenOptions)
Create a new XQuery transformer.javax.xml.transform.Transformer
createXSLTTransformer(javax.xml.transform.Source styleSource, java.net.URL[] extensionJars, int transformerType)
Create a new XSLT transformer.javax.xml.transform.Transformer
createXSLTTransformer(javax.xml.transform.Source styleSource, java.net.URL[] extensionJars, int transformerType, boolean useOxygenOptions)
Create a new XSLT transformer.java.lang.String
escapeAttributeValue(java.lang.String attributeValue)
Escape an attribute value so that the XML document remains well-formed.java.lang.String
escapeTextValue(java.lang.String textValue)
Escape text which will be inserted in the XML so that the XML document remains well-formed.org.xml.sax.EntityResolver
getEntityResolver()
Get the same entity resolver Oxygen sets to its constructed SAX Parsers (which looks into the Oxygen options and document types for catalogs).javax.xml.transform.URIResolver
getURIResolver()
Get the same URI resolver Oxygen sets to its constructed XSLT transformers (which looks into the Oxygen options and document types for catalogs).org.xml.sax.XMLReader
newNonValidatingXMLReader()
Creates anXMLReader
without validation.XMLReaderWithGrammar
newNonValidatingXMLReader(java.lang.Object grammarCacheToken)
Creates anXMLReader
without validation and with the possibility to reuse the grammar pool.java.lang.String
prettyPrint(java.io.Reader reader, java.lang.String systemID)
Pretty prints the given XML document.void
removePriorityEntityResolver(org.xml.sax.EntityResolver entityResolver)
Remove a priority entity resolver.void
removePriorityURIResolver(javax.xml.transform.URIResolver uriResolver)
Remove a priority URI resolver.void
resetXMLCatalogs()
Reset the loaded XML catalogs.java.net.URL
resolvePathThroughCatalogs(java.net.URL baseURL, java.lang.String relativeLocation, boolean entityResolve, boolean uriResolve)
Try to resolve a relative location to an absolute path by using the XML catalogs.MergeResult
threeWayAutoMerge(java.lang.String ancestor, java.lang.String left, java.lang.String right, MergeConflictResolutionMethods conflictResolutionMethod)
Deprecated.since 19.1, please use the equivalentCompareUtilAccess
utilities.java.lang.String
unescapeAttributeValue(java.lang.String attributeValue)
Unescape an attribute value.
-
-
-
Field Detail
-
TRANSFORMER_XALAN
static final int TRANSFORMER_XALAN
Xalan transformer- See Also:
- Constant Field Values
-
TRANSFORMER_SAXON_6
static final int TRANSFORMER_SAXON_6
Saxon 6 transformer- See Also:
- Constant Field Values
-
TRANSFORMER_SAXON_HOME_EDITION
static final int TRANSFORMER_SAXON_HOME_EDITION
Saxon 9 Home Edition transformer type (no extensions support).- See Also:
- Constant Field Values
-
TRANSFORMER_SAXON_PROFESSIONAL_EDITION
@Deprecated static final int TRANSFORMER_SAXON_PROFESSIONAL_EDITION
Deprecated.Since Oxygen 23 you can no longer create Saxon 9 PE transformers using this constant. The created transformer will be a Saxon HE transformer instead.Saxon 9 Professional Edition transformer type (full extensions support).- See Also:
- Constant Field Values
-
TRANSFORMER_SAXON_ENTERPRISE_EDITION
@Deprecated static final int TRANSFORMER_SAXON_ENTERPRISE_EDITION
Deprecated.Since Oxygen 23 you can no longer create Saxon 9 PE transformers using this constant. The created transformer will be a Saxon HE transformer instead.Saxon 9 Enterprise Edition transformer type (full extensions support + schema aware).- See Also:
- Constant Field Values
-
EXTENSION_PREFIX
static final java.lang.String EXTENSION_PREFIX
Predefined prefix for XPath extension function.- See Also:
- Constant Field Values
-
EXTENSION_NS
static final java.lang.String EXTENSION_NS
Namespace for XPath extension functions.- See Also:
- Constant Field Values
-
-
Method Detail
-
createXSLTTransformer
javax.xml.transform.Transformer createXSLTTransformer(javax.xml.transform.Source styleSource, java.net.URL[] extensionJars, int transformerType) throws javax.xml.transform.TransformerConfigurationException
Create a new XSLT transformer. The options set in the oXygen preferences are used.- Parameters:
styleSource
- The source XSLextensionJars
- Jars with extension libraries which can be used by the transformer, can benull
transformerType
- The type of the transformer to create, one of the constants defined in this class starting with TRANSFORMER_- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.
-
createSaxon9XSLTTransformerWithExtensions
javax.xml.transform.Transformer createSaxon9XSLTTransformerWithExtensions(javax.xml.transform.Source styleSource, net.sf.saxon.lib.ExtensionFunctionDefinition[] extensionFunctions, int transformerType) throws javax.xml.transform.TransformerConfigurationException
Create a Saxon 9 Home Edition transformer with the specified extension functions.
- Parameters:
styleSource
- The source XSLextensionFunctions
- Jars with extension libraries which can be used by the transformer, can benull
transformerType
- The type of the transformer to create can only be TRANSFORMER_SAXON_HOME_EDITION.- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.
-
createXSLTTransformer
javax.xml.transform.Transformer createXSLTTransformer(javax.xml.transform.Source styleSource, java.net.URL[] extensionJars, int transformerType, boolean useOxygenOptions) throws javax.xml.transform.TransformerConfigurationException
Create a new XSLT transformer.- Parameters:
styleSource
- The source XSLextensionJars
- Jars with extension libraries which can be used by the transformer. Can benull
.transformerType
- The type of the transformer to create, one of the constants defined in this class starting with TRANSFORMER_useOxygenOptions
- Iftrue
the options set in the oXygen preferences are used. Otherwise no options are set to the transformers.- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.- Since:
- 12.2
-
createSaxon9HEXSLTTransformerWithExtensions
javax.xml.transform.Transformer createSaxon9HEXSLTTransformerWithExtensions(javax.xml.transform.Source styleSource, net.sf.saxon.lib.ExtensionFunctionDefinition[] saxonExtensions) throws javax.xml.transform.TransformerConfigurationException
Create a Saxon 9 Home Edition transformer with the specified extension functions. This is necessary when the extension functions cannot be called by reflection because there is no license for the commercial version of Saxon 9.
The Saxon 9 options set in the oXygen preferences are not used.
- Parameters:
styleSource
- The source XSLsaxonExtensions
- The list of Saxon 9 extensions.- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.- Since:
- 12.2
-
createXQueryTransformer
javax.xml.transform.Transformer createXQueryTransformer(javax.xml.transform.Source xquerySource, java.net.URL[] extensionJars, int transformerType) throws javax.xml.transform.TransformerConfigurationException
Create a new XQuery transformer. The options set in the oXygen preferences are used.- Parameters:
xquerySource
- The source XQuery fileextensionJars
- Jars with extension libraries which can be used by the transformer, can benull
transformerType
- The type of the transformer to create, can only beTRANSFORMER_SAXON_HOME_EDITION
- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.
-
createXQueryTransformer
javax.xml.transform.Transformer createXQueryTransformer(javax.xml.transform.Source xquerySource, java.net.URL[] extensionJars, int transformerType, boolean useOxygenOptions) throws javax.xml.transform.TransformerConfigurationException
Create a new XQuery transformer.- Parameters:
xquerySource
- The source XQuery fileextensionJars
- Jars with extension libraries which can be used by the transformer. Can benull
.transformerType
- The type of the transformer to create, can only beTRANSFORMER_SAXON_HOME_EDITION
useOxygenOptions
- Iftrue
the options set in the oXygen preferences are used. Otherwise no options are set to the transformers.- Returns:
- The new transformer.
- Throws:
javax.xml.transform.TransformerConfigurationException
- AnException
is thrown if an error occurs during parsing of thesource
.- Since:
- 12.2
-
resetXMLCatalogs
void resetXMLCatalogs()
Reset the loaded XML catalogs. This way next time the catalogs are needed they will first be rebuilt.
-
resolvePathThroughCatalogs
java.net.URL resolvePathThroughCatalogs(java.net.URL baseURL, java.lang.String relativeLocation, boolean entityResolve, boolean uriResolve)
Try to resolve a relative location to an absolute path by using the XML catalogs.- Parameters:
baseURL
- The URL of the current opened XML file.relativeLocation
- The relative location to be resolved.entityResolve
-true
if the catalog entity resolver should be used.uriResolve
-true
if the catalog URI resolver should be used.- Returns:
- The absolute URL. It returns null only for URLs with unknown protocols for which an URL object cannot be constructed.
-
escapeAttributeValue
java.lang.String escapeAttributeValue(java.lang.String attributeValue)
Escape an attribute value so that the XML document remains well-formed.- Parameters:
attributeValue
- The attribute value.- Returns:
- The escaped value. It does not return
null
.
-
escapeTextValue
java.lang.String escapeTextValue(java.lang.String textValue)
Escape text which will be inserted in the XML so that the XML document remains well-formed.- Parameters:
textValue
- The text value.- Returns:
- The escaped value. It does not return
null
. - Since:
- 18
-
unescapeAttributeValue
java.lang.String unescapeAttributeValue(java.lang.String attributeValue)
Unescape an attribute value.- Parameters:
attributeValue
- The attribute value to be unescaped.- Returns:
- The unescaped value. It does not return
null
. - Throws:
java.lang.IllegalArgumentException
- when having problems with unescaping hex or decimal characters from the method's argument.- Since:
- 17.1
-
prettyPrint
java.lang.String prettyPrint(java.io.Reader reader, java.lang.String systemID) throws PrettyPrintException
Pretty prints the given XML document. The oXygen pretty printing options are used.- Parameters:
reader
- The reader with over the document that is to be pretty printed.systemID
- The URL location where the current XML fragment to format and indent is located. This parameter is not required but it may be used to solves relative entities from the DOCTYPE declaration in the XML content.- Returns:
- The pretty printed version of the XML document.
- Throws:
PrettyPrintException
- If the pretty printing failed.- Since:
- 17.1
-
newNonValidatingXMLReader
org.xml.sax.XMLReader newNonValidatingXMLReader()
Creates anXMLReader
without validation.- Returns:
- A new XML Reader.
-
newNonValidatingXMLReader
XMLReaderWithGrammar newNonValidatingXMLReader(java.lang.Object grammarCacheToken)
Creates anXMLReader
without validation and with the possibility to reuse the grammar pool. If you are parsing XML fragments with DOCTYPE many times in your operation this method will be faster than thenewNonValidatingXMLReader()
method.
Usage example:String xml = new String("<!DOCTYPE map PUBLIC \"-//OASIS//DTD DITA Map//EN\" \"map.dtd\">\n" + "<map/>"); Object grammarToken = null; for (int i = 0; i < 100000; i++) { XMLReaderWithGrammar readerAndCache = authorAccess.getXMLUtilAccess().newNonValidatingXMLReader(grammarToken); XMLReader reader = readerAndCache.getXmlReader(); grammarToken = readerAndCache.getGrammarCache(); reader.parse(new InputSource(new StringReader(xml))); }
- Parameters:
grammarCacheToken
- The grammar cache token, if not null, it will be used to cache the grammar pool.- Returns:
- A new XML Reader with a grammar cache token which can be then reused on the same method to provide grammar caching.
-
getEntityResolver
org.xml.sax.EntityResolver getEntityResolver()
Get the same entity resolver Oxygen sets to its constructed SAX Parsers (which looks into the Oxygen options and document types for catalogs). The resolver also looks at the additionally set priority entity resolvers.- Returns:
- the same entity resolver Oxygen sets to its constructed SAX Parsers (which looks into the Oxygen options and document types for catalogs).
- Since:
- 12.1
-
getURIResolver
javax.xml.transform.URIResolver getURIResolver()
Get the same URI resolver Oxygen sets to its constructed XSLT transformers (which looks into the Oxygen options and document types for catalogs). The resolver also looks at the additionally set priority URI resolvers.- Returns:
- the same URI resolver Oxygen sets to its constructed XSLT transformers (which looks into the Oxygen options and document types for catalogs).
- Since:
- 12.1
-
addPriorityEntityResolver
void addPriorityEntityResolver(org.xml.sax.EntityResolver entityResolver)
Add a priority entity resolver. For performance reasons, when Oxygen only needs the URL of an entity, it does not call the EntityResolver#resolveEntity(String, String) method because it also fetches the content of the entity. To intercept also these cases, your EntityResolver should extend theEntityUrlResolver
interface.- Parameters:
entityResolver
- The entity resolver which will be called with priority before Oxygen calls the standard resolvers which are based on the catalog files specified in the preferences catalogs list and in each document type association.- Since:
- 13
-
removePriorityEntityResolver
void removePriorityEntityResolver(org.xml.sax.EntityResolver entityResolver)
Remove a priority entity resolver.- Parameters:
entityResolver
- The entity resolver which will be called with priority before Oxygen calls the standard resolvers which are based on the catalog files specified in the preferences catalogs list and in each document type association.- Since:
- 13
-
addPriorityURIResolver
void addPriorityURIResolver(javax.xml.transform.URIResolver uriResolver)
Add a priority URI resolver.- Parameters:
uriResolver
- The URI resolver which will be called with priority before Oxygen calls the standard resolvers which are based on the catalog files specified in the preferences catalogs list and in each document type association.- Since:
- 13
-
removePriorityURIResolver
void removePriorityURIResolver(javax.xml.transform.URIResolver uriResolver)
Remove a priority URI resolver.- Parameters:
uriResolver
- The URI resolver which will be called with priority before Oxygen calls the standard resolvers which are based on the catalog files specified in the preferences catalogs list and in each document type association.- Since:
- 13
-
threeWayAutoMerge
@Deprecated MergeResult threeWayAutoMerge(java.lang.String ancestor, java.lang.String left, java.lang.String right, MergeConflictResolutionMethods conflictResolutionMethod)
Deprecated.since 19.1, please use the equivalentCompareUtilAccess
utilities.Merges two strings representing XML files using a three way merging algorithm which needs an ancestor file.- Parameters:
ancestor
- The original file string which has been modified into left and right.left
- The left version of the file string, the one with "our" changes.right
- The right version of the file string, the one with "others" changes.conflictResolutionMethod
- The conflict resolution method to use.- Returns:
- A merged file string where conflicts are resolved by using the left version of the file or null if the merge encountered an error.
- Since:
- 17.1
-
-