Martin Klang | 1 Oct 2007 12:41

Rebel IT: Open source support and commercial services

Hello all,

I'm pleased to announce that Rebel IT Ltd, a UK based company that I  
am involved in, are providing expert support and commercial services  
for o:XML projects and technologies.

The company undertakes bespoke software development projects for  
large and small clients. We also do pure consultancy, and are happy  
to chat with you about almost anything IT.

Rebel IT can provide commercial licences for most of the various  
o:XML related projects, including ObjectBox, MLML, hatatap and others.

The Rebel IT website will develop over time to feature news and  
updates for a range of exciting open source projects.

For more information please check out: http://www.rebel-it.com/

best regards,

/m
Martin Klang | 2 May 2007 23:59

o:XML 5th anniversary


Yesterday, May 1, marked the 5th anniversary of the o:XML project. We  
can look back on five years of intense and exciting developments.  
o:XML now comprises a whole family of highly interesting, innovative  
and in some cases cutting edge technologies.

It's also been five years of o:XML proving itself as a language fit  
for large scale, production grade projects. A series of commercial  
projects have been undertaken with o:XML as the core language  
technology, where it has delivered   robust, high-performance, on- 
time and on-budget solutions. Through this work, and through the  
close relationship we have with many of our users, o:XML has matured  
in a way that would not otherwise have been possible.

Looking to the future is always more important than looking at the  
past. Work is currently underway to produce the next generation of  
o:XML tools and technologies. Important language changes will be  
incorporated in an all-new compiler/interpreter. These changes  
represent an important coming of age for o:XML, incorporating all of  
the lessons learned in the last five years.

The new toolset, called ObjectBox2 (keeping it simple!), is based  
around MLML [1] and brings with it a host of improvements. Amongst  
other things you can expect to see improved contextual error  
messages, compiler error detection (including type checking!), multi  
schema validation, further improved integration with other  
technologies and much enhanced execution performance. This short list  
belies the depth of the changes; the next generation tools will allow  
for quite different methods of development to be undertaken.

(Continue reading)

Martin Klang | 24 Apr 2007 13:56

Bug #47, Element.number() returns NaN

Hi,

Hugo Fernandez discovered a bug which results in Element.number()  
returning the wrong value, see http://bugz.pingdynasty.com/ 
show_bug.cgi?id=47 for details.

The bug has now been fixed in cvs, the fix will be included in the  
next release.

regards,

/m

On 4 Apr 2007, at 5:45, Hugo Fernandez wrote:

>
>
> Hello Martin,
>
>
> I am getting into o:xml and I was executing the tutorial examples.  
> I have come
> accross some doubts that I would like to ask you.
>
> In chapter 6, there is the following code:
>
>   <o:variable name="stock">
>     <product name="stereo">
>       <price>250.00</price>
>       <condition>flawless</condition>
(Continue reading)

Martin Klang | 23 Apr 2007 12:42

Upcoming o:XML language changes

Hello all,

I'm planning to implement some fairly substantial language changes to  
o:XML and o:Lib. The new language version will be called o:XML 1.2,  
which will be implemented in ObjectBox v1.2.0.

The most visible change will be a new naming convention, which will  
give more consistent, and hopefully meaningful names to all built in  
and o:Lib types and functions.

The naming convention will be, in short:
Type names: UpperCamelCase, eg SystemError
Type functions: UpperCamelCase, eg GetStackTrace()
Global functions (eg XPath functions): hyphenated lower case, eg  
normalize-space()

Another important, and necessary, change is to do with type  
declarations and nodesets. Nodesets are used in o:XML as general- 
purpose lists, similar to tuples or arrays in other languages. Type  
declarations will be extended to allow the following notation:
Type - cardinality 1; denotes a single node of type 'Type'.
Type? - cardinality 0 or 1; either an empty nodeset or a single node  
of type 'Type'.
Type+ - 1 or more nodes of type 'Type' (ie a single node, or a  
nodeset with more than one nodes of type 'Type').
Type* - 0 or more nodes of type 'Type'.

hence a function can be declared thus:
<o:function name="AddNumbers">
   <o:param name="nums" type="Number+"/> <!-- 1 or more Numbers -->
(Continue reading)

Martin Klang | 20 Apr 2007 18:45
Picon
Favicon

Re: Dynamic evaluatino of XPath expression - should java:evaluate() work?

Eric,

try something like
<o:set file="io:File("output.xml")"/>
<o:do select="$file.write($output)"/>
<o:set program="Program($file.path())"/>
<o:set result="$program.run()"/>

you can also set program parameters before running it with
<o:do select="$program.parameter($name, $value)"/>

hth,

/m

On 18 Apr 2007, at 19:57, Hilfer, Eric wrote:

> I'll try writing a second program file dynamically.  Could you  
> remind me
> how to invoke a program that is in another file?
>
> Thanks,
> Eric
Cefn Hoile | 19 Apr 2007 01:53

Planning Project to use YAPP - confused on AST Tree Walker

I've been seeking a suitable XML format and supporting toolset to  
store both an abstract grammar and the mapping from an instance of  
the grammar (abstract syntax tree) to executable programs in a target  
language.

I'm aiming to learn the basics of compiler design by re-creating a  
subset of ECMAScript, (control flow, arithmetic and boolean logic),  
but where the javascript is written from an abstract syntax tree  
(AST) stored in XML directly e.g.

<if>
	<equals>
		<sum>
			<number>2</number>
			<number>2</number>
		</sum>
		<number>4</number>
	</equals>
	<assign>
		<property>world</property>
		<string>consistent</string>
	</assign>
</if>

The grammar (also represented in XML, as in the case of YAPP) should  
ensure that the original tree is indeed a valid construct, and  
traversing the tree should spit out ECMAscript, in this example...

if(2 + 2 == 4){
	world = 'consistent';
(Continue reading)

Hilfer, Eric | 18 Apr 2007 19:06
Favicon

Dynamic evaluatino of XPath expression - should java:evaluate() work?

I have a file with a list of xpath expressions.  Using a hatatap o:Xml script, I want to evaluate each of those strings as an xpath path against a $dom variable that has been loaded by a POST request.

 

Is there a dynamic evaluation function in o:Xml?  I have tried using java:evaluate( $stringPath, $dom) but is always returns an empty result, I think.

 

Thanks for your help!

 

 

_______________________________________________
o-xml mailing list
o-xml@...
http://lists.pingdynasty.com/mailman/listinfo/o-xml
Martin Klang | 26 Mar 2007 02:24

ObjectBox v1.1.7 : Spring Integration


Finally in a public release, the new ObjectBox v1.1.7 now offers  
complete Spring 2.0 integration.

As usual you can get the release from the download page [1].

There's a new article [2] in the documentation describing how to  
create and use o:XML beans in Spring. It also has ideas for use  
cases, scenarios where delegating to o:XML beans can make a big  
difference in your application.

enjoy!

/m

[1] http://www.o-xml.org/download/
[2] http://www.o-xml.org/documentation/obox-spring.html
Martin Klang | 14 Mar 2007 20:21

ObjectBox v1.1.6

The documentation for the new ObjectBox v1.1.6 is now up on the  
website [1].
Notably the Database Extensions [2] have been revamped and got a  
couple of new features.

The release includes: Added functionality to provide alternative SQL  
commands for different SQL dialects. Updated db:result parameters to  
use SQL type mappings. Added generated nodes() function for Element  
subtypes for quick, automatic object serialisation. Updated o:for- 
each to maintain the context position during iteration. Improved  
support for SML and SML macros. Bugfixes and improvements to  
performance and useability.

The full change log is available here [3].

have fun!

/m

[1] http://www.o-xml.org/
[2] http://www.o-xml.org/documentation/obox-db-extensions.html
[3] http://www.o-xml.org/objectbox/changes.txt
Francisco | 19 Feb 2007 12:20
Picon
Favicon

To find ProgramFactory

Dear Martin,
 
I couldn't find the class "ProgramFactory" as the example below. I am wondering what package should I "import"?
 
I even tried to look at the objectbox, but couldn't find it. Could you please kindly let me know where I can find it? Your great help is highly appreciated.
 
Looking forward to your reply.
 
 
Kind regards,
Francisco
 
 
====================================================
import org.oXML.type.*;
import org.oXML.engine.*;
...
String systemId = "your-file.oml";
Name functionName = new Name("your-function");
Type[] signature = new Type[]{}; // default sig, ie your-function()
Node[] args = new Node[]{}; // empty args
...
ProgramFactory pfactory = new ProgramFactory();
pfactory.loadDefaultExtensions();
InterpretedProgram program = pfactory.getProgram(systemId);
pfactory.compile(program);
Function func = program.getResolver().getFunction(functionName, 
signature);
RuntimeContext env = new RuntimeContext(program);
Node result = func.invoke(args, env);
String stringResult = result.stringValue();
======================================

Copy addresses and emails from any email account to Yahoo! Mail - quick, easy and free. Do it now...
_______________________________________________
o-xml mailing list
o-xml@...
http://lists.pingdynasty.com/mailman/listinfo/o-xml
Francisco | 11 Jan 2007 02:05
Picon
Favicon

external java agent calls functions in o:XML

Dear All and Martin,
 
I am quite interested in external java agents calling functions in o:XML files. I am not sure if this can be done provided that current o:XML API and libraries.

Can anybody provide me an example or explain if this can be done? the details of this thinking is described as follows:
 
Currently I would like to describe the object-oriented MIB with O:XML language. This O:XML "configuration" file is written beforehand and java agents do NOT need to generate this o:XML, whereas, java agents need to invoke the methods predefined in this file with regards to event notifications, and reassign the value of the variables in o:XML file itself. In
addition, the java agents could act in either multiple threads mode simutaneously or
operate one after one another. We could always make it complicated later. Currently
I am confused by the possible implementation of methods invoked by java agents. I am
not sure if there are available API or library for this external operation done by java agents.
 
Thank you in advance for providing me with a simple example about this. Your help is highly appreciated and will be acknowledged in the in future network management research.
 
Looking forward to hearing from you very soon.
 
Best regards,
Francisco

All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine
_______________________________________________
o-xml mailing list
o-xml@...
http://lists.pingdynasty.com/mailman/listinfo/o-xml

Gmane