Michael,
(sorry, hit sent unintentionally in my previous email )
 
>Could Schematron also be (re)used as a HTML Form Editor, running
>on the server side?
Yes, if you mean XML file validation while editing.
You can look at a Schematron schema as a set of XPath assertion rules against a target XML file.
It's really easy to use and understand. I don't have a clue why it was given such a scary name ;)
 
Regards,
 
Ivelin
 
 

Thanks

Michael





Ivelin Ivanov wrote:
000801c1c8ac$fcb90ac0$0c91fea9@galina" type="cite">
The next thing I plan to work on is a customized Schematron meta-stylesheet
for Cocoon, which will be used for validation of HTML Forms (can be also
applied to SOAP messages).

Before I do that though, I'd like to ask for a vote to verify the interest
in such a feature.
Please vote if you have opinions on this subject.

The idea is basicly described by this state flow:

server side JavaBean -> cocoon -> html form -> browser -> http post ->
Xpath/JavaBean (the same one) -> XML -> Schematron Validation -> (next
action | back to same html form with errors )

Schematron is an alternative to Martin and Christian's FormValidatorAction
and Descriptor.xml.
It's designed to:
1) provide easy to write XML structure assertions based on XPath
2) user-friendly error reporting mechanism
3) Complimentary to XML Schema

Based on the proposed CastorTransformer and FormBeanBinder, a Schematron< br>trasnformer is a logical next step.
Schematron has been polished and it is stable for about a year now. Has a
working XSLT implementation.
Proved successful for various applications. Under a truly open source
license (zlib/libpng
http://www.ascc.net/xml/resource/schematron/copyright.txt). Hosted on
SourceForge.

Here are some referenes:
home page: http://www.ascc.net/xml/resource/schematron/
sf page: http://sourceforge.net/projects/schematron
tutorial: http://www.zvon.org/xxl/SchematronTutorial/General/contents.html
articles:
http://www.xml.com/pub/a/2002/01/23/perl-schematron.html
http://www.xmlhack.com/read.php?item=945
http://www.ibiblio.org/xml/slides/xmlonelondon2001/schemas/67.html


Looking forward to your comments.

Ivelin



----- Original Message -----
From: "Ivelin Ivanov" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "Dmitri Plotnikov" <[EMAIL PROTECTED]>
Sent: Sunday, March 10, 2002 6:47 AM
Subject: Re: Comitting components


< /pre>
Folks,

I think we might have made one small step towards HTML Form symmetry in
Cocoon.
The approach I have taken after long discussions and even longer hours
before my monitor is enhancing the Cocoon Action concept so that it is
coherent with the rest of the framework.

Thanks to the people who built JXPath and Castor (and
CastorTransformer),
I think we now have a way to elegantly map content to business logic.
(HTML
Forms <-> XML/XPath <-> JavaBeans)

The idea has been in circulation for a long time: unmarshal JavaBeans from
the buziness layer to XML, so that they can be part of the content model
and
then use XPath expressions for HTML Form elements so that on POST the same
JavaBean can be updated and sent back to the business logic.

You can download a scratchpad formatted bundle here:
http://prdownloads.sourceforge.net/freebuilder/CocoonForm.zip
I've only used Apache licensed files this time ;)
The examples are based on the CastorTransformer examples, so they should
be
easy to comprehend.

The code is very simple. I've tried not to touch more advanced problems
like
error handling and reporting, unusual custom mapping and multi page
wizards.
Thought I should first present to the rest of the group a simple prototype
for feasibility test .


Below I will show just a sample XSL file which takes an XML presentation
of
a JavaBean and renders HTML forms with the appropriate XPath expressions.
It
will hopefully sharpen your apetite enough to make you look at the code
and
participate in the
discussion:


---------------------------
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" omit-xml-declaration="yes" />
- <xsl:template match="/zoo">
- <html>
- <body>
Please edit and submit:
<br />
<xsl:apply-templates />
</body>
</html>
</xsl:template>
- <xsl:template match="animal[1]">
- <form method="post" action="test">
<xsl:variable name="animalName" select="name" />
Animal name:
<input type="text" name="name" value="{$animalName}" />
<br />
Kind:
- <b>
<xsl:value-of select="personalInfo/@kind" />
</b>
<br />
<xsl:variable name="animalScope" select=" scope" />
Animal scope:
<input type="text" name="scope" value="{$animalScope}" />
<br />
<xsl:variable name="preference1" select="preferences[1]" />
First Preference:
<input type="text" name="preferences[1]" value="{$preference1}" />
<br />
<xsl:variable name="preference2" select="preferences[2]" />
Second Preference:
<input type="text" name="preferences[2]" value="{$preference2}" />
<br />
<input type="submit" />
</form>
<br />
Counter:
<xsl:value-of select="@count" />
</xsl:template>
<xsl:template match="*" />
</xsl:stylesheet>
----------------------------------


Looking forward to comments.

Cheers,

Ivelin





----- Original Message -----
From: "Ivelin Ivanov" <[EMAIL PROTECTED] om>
To: "Nicola Ken Barozzi" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Cc: <"[dplotnik@"@iname.com
Sent: Thursday, March 07, 2002 3:57 PM
Subject: Re: Comitting components


Way cool !

We've been using castor .93 for quite serious xml traffic between
hundreds
win c++ clients and a java portal. Great performance.
Donating this transformer also saved me some work.
As I mentioned before I am workin on a little prototype that'll
hopefully
introduce some HTML Forms symmetry in cocoon.
From an earlier email by Konstantin:
It would be also fine to have an action that >performs the opposite
operation: set properties of JavaBean object(s) with request param
values
using XPath expressions, e.g.:
customer/firstname = Ozzy
customer/lastname = Osbourne
can be converted to XML:
<customer>
<firstname>Ozzy</firstname>
<lastname>Osbourne</lastname>
</customer>
I am working on this with Dmitri's help using his JXPath lib.
http://cvs.apache.org/viewcvs/jakarta-commons/jxpath/

It's being used for Jakarta JSTL and Workflow (which says enough for its
quality).
Let me know if someone else is working in this direction so that we
don't
double the work.
Regards,

Ivelin





-----Original Message-----
From: "Nicola Ken Barozzi" <[EMAIL PROTECTED]>
Date: Thu, 7 Mar 2002 18:03:30 +0100
To: <[EMAIL PROTECTED]>
Subject: Re: Comitting components


From: "Matthew Langham" <[EMAIL PROTECTED]>

today two new "things" were donated/comitted to the Cocoon
scratchpad -
the
Castor Transformer and the POI Serialization code.

It would help people like me (who do not read all the messages or
much
worse
remember them all) if comitters could add a couple of lines or
paragraphs
as
to what can be done with the new components when sending off the
announcements.
You are right. Thank you for the pointer.
Here is a brief explanation.

----------------------
POI Serializer
----------------------

The POI project, now hosted on http://jakarta.apache.org/poi/ , is a
project
that consists of APIs for manipulating various file formats based upon
Microsoft's OLE 2 Compound Document format using pure Java. OLE 2
Compound
Document Format based files include most Microsoft Office files such
as
XLS
and DOC.

The HSSFSerializer uses POI's HSSF xls file write API
http://jakarta.apache.org/poi/hssf/index.html , and is now in Cocoon
proper
(not scratchpad).

It makes it possible to output xml following the schema of gnumeric to
an
xls file.
Examples are present in the "extra" section, under "legacy file
formats".
To install the Cocoon war easily, do:

build.(sh|bat) clean
build.(sh|bat) installwar

----------------------------
Castor Transformer (in scratchpad)
----------------------------

Marshals a object from the the sitemap, request, session or Servlet
Context
into a series of SAX events, and can seek for the java bean
automaticaly.
TheCastortransformer can be configured with a default mapping. This
mapping
is used as long as no other mappings are specified.

<map:transformer name="CastorTransformer"

src="org.apache.cocoontransformation.CastorTransformer">
    <mapping>castor/xmapping.xml</mapping>
</map:transformer>

A sample for the use:
<root xmlns:castor="http://castor.exolab.org/cocoontransfomer">
<castor:InsertBean source="session" key="invoice"/>
<castor:InsertBean source="sitemap" key="product"
mapping="castor/specicalmapping.xml"/>
</root>

The CastorTransfomer support only one Element castor:InsertBean.
This element is replaced with the marshalled object.

Other information can be found in the scratchpad sample sub-sitemap
under
docs.

To install the Cocoon war with scratchpad stuff easily, do:

build.(sh|bat) clean
build.(sh|bat) installscratchpadwar

The demo is under http://server:port/cocoon/samples/castor/

--
Nicola Ken Barozzi [EMAIL PROTECTED]
- verba volant, scripta manent -
(discussions get forgotten, just code remains)
---------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]


--

_______________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup

Travelocity.com is giving away two million travel miles.

http://ad.doubleclick.net/clk;3969773;6991039;g?http://svc.travelocity.com/p
romos/millionmiles_main/0,,TRAVELOCITY,00.html

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Reply via email to