Generative XML
python libxml2 dita
python libxml2 dita
For correct transformation of DITA files (XML-standard for modular documentation), it is necessary to pull information from DTD (document...
January 21, 2016
illegal XML characters
Sometimes I dump binary data into XML. Being aware of illegal bytes (0-8,B-C,F-1F), I encode everything in base64. But there is a nice alernative way, just r...
November 01, 2012
Generative XPath for GWT
Google Web Toolkit (GWT) allows developers to use the Java programming language to build no-compromise AJAX applications. After announcing my project in its ...
July 31, 2007
Generative XPath announces
I've announced Generative XPath in few places. This entry is to assist tracking responses. xml-dev | comp.lang.xml | Google Web Toolkit | google-ajax-discuss...
July 30, 2007
submission for gttse’2007 is rejected
Unfortunately, I'm not going to speak at gttse'2007 participants workshop. My extended abstract (Recursion-free XPath 1.0 implementation) was rejected, the c...
June 23, 2007
post-xmlprague notes
I like Prague, it's a very beautiful city. My contribution to XML Prague 2007:
* paper "Generative XPath"
* presentation slides
* poster XML to beautiful doc...
June 19, 2007
Generative XPath is released
Generative XPath (0.9.1) is an XPath 1.0 processor that can be adapted to different hierarchical memory structures and different programming languages. Custo...
June 10, 2007
proposal for XML Prague 2007
I've just sent an extended abstract for the XML Prague 2007 conference. I hope it will be accepted.
Title: Generative XPath
Name: Oleg Parashchenko
Affilia...
February 28, 2007
codegeneration is cool
The expression "1+2+3" is converted to:
(list-ec
(:list e1 (gx:. gx:unit gx-ffi:number gx:fido (gx:unit 1)))
(:list e2
(gx:. gx:unit gx-ffi:num...
February 07, 2007
s-expressions vs xml
I've dumped some my thoughts to text. Result is a draft of a possible paper: "Towards s-expression based XPath/XSLT implementation".
July 26, 2006
XPath Filename Expansion in a Unix Shell
Recently I found the paper "XPath Filename Expansion in a Unix Shell" (HTML, PDF) by Kaspar Giger and Erik Wilde. I'm pleased the authors have referenced my ...
July 22, 2006
the fall of XPath over filesystem
Many XPath tutorials use file paths as an analogy of XPath. While it is ok from a high-level point of view, the analogy is misleading and actual technical im...
July 13, 2006
GTTSE 2005 photos
Finally, my GTTSE 2005 photos are online. The start page is approximately 2Mb, and larger photos are of 300Kb-1Mb size. Unfortunately, I can't describe how g...
August 20, 2005
x:apply-templates: “with-param” works
Finally, "with-param" in the Scheme function "x:apply-templates" works. It took some time because I forget an experience with making "mode" working. Again, p...
June 20, 2005
askemos
From the mail discussions: www.askemos.org. “This is actually a Scheme VM in byzantine synchronisation over a P2P network with some administration fre...
June 14, 2005
XSieve is submitted to Google Summer of Code
I've submitted my new project XSieve to the Google's Summer of Code program.
Project Title
-------------
XSieve, an alternative to XSLT 2.0
Synopsis (a shor...
June 08, 2005
generative XML paper
I've published the article "Reusing XML Processing Code in non-XML Applications" ([PDF]) version 1.0 and posted announces to different forums.
Places:
xml-...
June 07, 2005
feedback on the GPCE’05 article
Some time ago I submitted an article to the Generative Programming and Component Engineering (GPCE'05) conference. Article is rejected, but to my great surpr...
June 05, 2005
Troubles make code stronger
A small test case revealed weak points in my code. Fixing each point was making the code worse and worse. Fortunately, I got insight. Why not to use a fake n...
May 27, 2005
getting access to a firewalled subversion repository
A small firm has a Subversion server located in a local network. The network is secured by a firewall. The task: give access to the Subversion server from th...
May 26, 2005
3 days of hunting for a bug
I've spent 3 days on getting simple code to work. In exchange I've got more experience with xsltproc internals. But I'm not sure it's a fair trade.
The task...
May 25, 2005
x:apply-templates starts to live
The Scheme function "x:apply-templates" should work like the XSLT function "apply-templates". The very basic test case is passed today.
The default XSLT sty...
May 17, 2005
libxml evening
Today I've submitted a bug to libxml, written to the libxml mailing list about wish items on the documentation, and asked about xpath and the document order ...
May 06, 2005
programmer’s nightmare is a coredump in malloc
Yesterday I updated libxml2 and xsltproc from CVS and got a coredump. I am very scared because I can't produce a test case and I think that the problem is on...
May 04, 2005
why to bother with namespaces
I found a non-obvious issue in the Namespace Recommendation and fixed my converter. Then I decided to look at other popular de-facto stanadrd tools. They are...
May 03, 2005
namespaces strike back
XML namespaces are an invention from the evil. Two harmlessly looking messages in one of the scripts evolved to two hard debug sessions. Fortunately, I manag...
May 02, 2005
near the second milestone of the xslt/scheme project
The conversion from the libxml nodes to SXML works, the reverse conversion works too. Meanwhile, the function "x:eval" which was planned for the third milest...
April 29, 2005
one step forward, two back
Conversion of the attribute nodes seems working, although with some glitches. And I traditionally mention namespaces. I decided to have holes in ns processin...
April 26, 2005
attributes are not so simple
SXML to XML conversion of attribute nodes is becaming a trouble. I've fixed several initially unnoticed issues and found more items to check.
The first prob...
April 22, 2005
“x:eval”, “x:deep-copy”, “current()”, and attributes
Namespaces are still working, xml node of the type "document" is now handled correctly, XSLT XPath functions are activated. To finish with the libxml to sxml...
April 21, 2005
Generative XML in FrameMaker
One of the use cases for XPath over legacy data is structured FrameMaker (FrameMaker+SGML). The structure is in fact XML, that's good. But the only interface...
April 20, 2005
let a bug be a feature
Adding variables to XPath was a simple task. But when I was testing it, I had to switch to testing the Scheme function "x:current" (former name "x:current-no...
April 19, 2005
namespaces in “x:value-of” are supported
I haven't worked on generative XML for half of month and completely forgot what I'm doing. Fortunately, the last post on this topic suggested the start point...
April 18, 2005
a paper for GPCE 2005 is submitted
The last days were very hard. Usual activity was abandoned in favour of writing a paper for the GPCE 2005 conference.
The deadline was April 15, 23:59, Apia...
April 15, 2005
abstract for GPCE 2005 is submitted
I'm slowly and painfully writing a paper for the Generative Programming and Component Engineering (GPCE'05) conference. I hate my writing which should be thr...
April 10, 2005
article section: SXML, the Lisp approach
Article isn't writing. Although, in general, I have ideas what to write, the actual writing is painfully slow. Today I've only finish a section, and I feel I...
April 04, 2005
draft text on XML, XPath, S-expressions
I'm writing a paper (not for GTTSE2005 as the previous entry may suggest). Here is a bit of the text written today.
XML
Extensible Markup Language (XML, re...
April 03, 2005
I’m participating in GTTSE2005
Just have received a very nice notification: "The registration form you submitted has been evaluated, and we are happy to inform you that you have been ACCEP...
April 03, 2005
directory trees
I've just stumbled upon a new article at xml.com: Directory Trees to Document Trees. I've posted a comment to the article and dropped a note to the author.
...
April 02, 2005
“x:value-of” is not so simple
Implementation of the "x:value-of" function evolved to a quest. There are many questions, and in order to find answers, I have to dig in the source code of l...
April 01, 2005
namespaces reloaded
All this time I've subconsciously been ignoring a big namespace-related problem. I'm afraid the correct solution slows down the conversion between XML and SX...
March 31, 2005
drafting “x:value-of”
Thinking about testing XML to SXML conversion to pass the second milestone, I found out that I need functionality that was planned for the future. So I tempo...
March 31, 2005
XML to SXML is probably works
(This post was written yesterday, but due to internet outage I'm posting it only now.) Exactly as I expected, implementation of conversion of attributes and ...
March 31, 2005
bugfixing 2, coredump
Other two bugs (see "bug list" and "bugfixing 1") are interrelated. Use of the map is powerful, but dangerous.
To remind:
1) ... but I want to check that I ...
March 29, 2005
bugfixing 1, NULLs
In the previous entry I mentioned three bugs to be fixed. In this post I describe the second issue.
To remind:
The second issue is definitely not a bug, but...
March 29, 2005
XML to SXML coredumped
Surprisingly, conversion from libxml2 tree to SXML seems a trivial task now. Only attributes and namespaces are left.
The core of the conversion engine is a...
March 28, 2005
more “bad style” programming
Using a global variable is a bad programming style, isn't it? But I've just used it, and I'm sure it's a right thing.
I have a set of recursive functions wh...
March 28, 2005
XML to SXML conversion is taking off
Several days ago I passed the first milestone in the generative XML work (conversion from XML to SXML). Reverse conversion looks simplier, but I just was not...
March 27, 2005
going to participate in GTTSE2005
I've submitted an application for participation in the Summer School on Generative and Transformational Techniques in Software Engineering.
I'd like also to...
March 25, 2005
SXML to libxml2 conversion is completed. what’s next?
All tests are passed, and now I think that conversion from SXML to libxml2 is working and stable.
In the previous post I announced that namespaces are finis...
March 23, 2005
namespaces are finished
Namespace support in the SXML to libxml2 conversion is completed.
I though I could finish namespace conversion much earlier. But programming was not very ea...
March 23, 2005
make test
Before starting fixing the default namespace problem, I've created a test framework and added several tests. The results are as usual.
1) I found an error i...
March 22, 2005
default namespaces force new changes
I decided to make sure that default namespaces are not a problem for the converter, and I found that actually it is the problem.
Consider the following XML:...
March 20, 2005
redefinition of namespaces works
In one of the previous entries I wrote that conversion of namespaces is mostly working, but in some cases doesn't. I've traced the reason, and it neither a b...
March 20, 2005
namespaces are completed at the first look, but then not
Yesterday I succeeded in writing a code for processing an auxiliary SXML list and reporting namespace definition pairs (prefix and URI). I thought I was stil...
March 20, 2005
the namespaces problems are solved
In the previous entry I wrote about the two faults in the conversion code. Now they are fixed. And the code have became a bit better.
Attributes are now also...
March 17, 2005
first attempt on namespaces conversion
The code splits an element's full name on two parts, looks up in the tree for ns prefix or ns URI and creates a ns definition if not found. There is also a d...
March 17, 2005
Algorithm for SXML to libxml2 namespaces
The previous entry "preparation for namespaces" was about presentation of namespaces in libxml2 and SXML. Now I'm going to describe the algorithm of translat...
March 15, 2005
preparation for namespaces
Namespaces are one of the dark corners of the XML technologies. For SXML to XML conversion, I've investigated technical details on the namespace presentation...
March 14, 2005
entities appear
The SXML specification allows only one sort of entities, namely, unexpanded entities. I can't find how to map them to the libxml2 tree, so converter just thr...
March 11, 2005
entities in SXML
My letter to the ssax-sxml mailing list:
Hello,
the SXML specification allows only one sort of entities, namely, unexpanded entities. The only use for them i...
March 11, 2005
PIs and comments
My code now converts the special nodes *TOP*, *PI* and *COMMENT* to XML.
The *TOP* is just a mark for the tree root. The code just skips it and descends to c...
March 11, 2005
libxml2 tree: NULL vs empty string
In libxml2, C calls
xmlNewPI("name", NULL);
xmlNewPI("name", "");
produce the following processing instructions
<?name?>
<?name ?>
(notice th...
March 11, 2005
following bad practises
Some days ago I used "goto"s in my C code. Now that C function have got a new bad feature: a set of local variables named "scm", "scm2", "scm3", "scm4". Anyw...
March 11, 2005
Skeleton is forming
Unexpectedly, I've got too little time for programming this evening. Anyway, the new code now can convert elements and attributes.
XSLT:
<x:stylesheet
...
March 10, 2005
the road to hell is paved with good intentions
I've spent the evening investigating why I was getting a core dump. It was not an easy task because the code was in a plugin (so it was hard to set a breakpo...
March 09, 2005
links, trees, forest, infinity
On mapping from Scheme values to libxml nodes. It is reasonable to map the same physical values to the same physical nodes. But it causes unexpected results....
March 08, 2005
from Scheme values to XML nodes
Conversion of some basic Scheme types (string, boolean, char, number) to XML nodes now works. The stylesheet
<x:stylesheet
xmlns:x = "http://www.w3.org...
March 08, 2005
goto considered
It's well-known that goto is considered harmful. But... I've just written a small C function of approximately 70 lines with 5 gotos and two goto targets. And...
March 08, 2005
xfind is not the standard find
The title "Find with XPath over file system" is a bit misleading. It is not the first time when I've got a question like:
When you say "The standard UNIX uti...
March 07, 2005
XSLT element “scheme:init” works
I'm working on embedding Guile (Scheme interpreter) to xsltproc. I've introduced the element "init" to contain Scheme initialization code and added (I suppos...
March 07, 2005