furfurylic / chionographis Goto Github PK
View Code? Open in Web Editor NEWAn Ant task for cacading XML transformation
License: Creative Commons Zero v1.0 Universal
An Ant task for cacading XML transformation
License: Creative Commons Zero v1.0 Universal
As of now, Transform filters can participate sharing of external parsed entities, XPath document
function results, and xsl:include
s and xsl:import
s. But they cannot share the compiled stylesheets themselves.
There can be a scenario in which two or more Transform filters with an identical stylesheet appear in an Chionographis task because they have other parameter sets.
Documents about usage of Chionographis task and its child elements are required. It shall be supplied as independent documents from Javadoc comments.
I would think there are some unnecessary constraints:
Make Chionographis driver capable of set the original sources' meta information into its destination documents.
Supported meta information are file names, file paths, and file titles (file name minus extension).
Setting them is done as adding processing instructions as the document elements children.
So far, <meta>
can provide URIs only in their absolute forms. I would think that it is not very useful because almost any time I would like to write stylesheets without any knowledge of their absolute location. So in my opinion <meta>
should support relative URIs.
Chionographis has an ordinary skipping mechanism in which the original source files are not not processed when the destination file is not older than the original.
Adding "force" attributes enables bypassing this mechanism and forcing processing.
This attribute shall be added to all of the drivers and sinks.
In #12, the source document contents became accessible for sink in prior to start sink's operation for that tree. So, there are no reason left not to make Snip filters "force"able.
As of now, Output sinks compile XPath expressions in their refer attributes in Output.init()
method. Compiled XPath expressions are needed only when input sources are included into the process, so there is a chance to save the processor time.
Note again:
URIResolver
is for <xsl:import/>
, <xsl:include/>
and document()
. Not for source document's external entity. (What about external entities of documents loaded by document()
function? I don't know.)StreamSource
is of no use. Use SAXSource
instead.URIResolver
s are no use.I think the line
<fileset file="./lib" includes="*.jar"/>
in the UsersGuide.asciidoc should be
<fileset dir="./lib" includes="*.jar"/>
.
As of now, Chionographis's execution uses no other threads than the main one. It would be good introduce multithreading. There's, however, no specific idea...
As of now, Chionographis reports caught exceptions by Ant task's log
method, but this method seems not to print track traces.This serves little help to find the cause of the issue.
As of now, All filter extract the document element of the source document received. This causes omission of nodes out of the document element.
<!this>
<a><b/></a>
<!-- this -->
<x><y/></x>
and
<all root="r"><!-- ... --></all>
yield
<root>
<a><b/></a>
<x><y/></x>
</root>
Internally, "meta" uses XMLFilter
, "cache='yes'" uses EntityResolver
and no "refer" means SAX. A test is required for this combination.
Transform filter shall cache documents using URIResolver
.
It seems that Xalan XSLTC fails on processing the document()
function when a resolver registered by setURIResolver()
, which wrongly change the context node onto a node in the resolved document. So we shall require a workaround, possibly which is an option to Transform filter with which the caching mechanism can be disabled.
Perhaps it is the best that the cached form of a documents is a DOM tree. This cache shall be shared by all Transform objects.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.