<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2>Jorge,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2>As far as I understand, you talk about schema evailution,
i.e. what if a schema changes after contents are already created with that
schema. </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2>I agree that the straightforaward approach for this to just
read all XML contents that use the "old" schema, and re.write them somehow to
the "new" schema. This could be some tool in the "Administration" view. I would
welcome having such a tool, but currently we will not be able to work on this,
so this is open for contribution from someone else.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2>FYI: The next alpha version of OpenCms will feature a much
extended version of the XML content editor that is able to deal with "optional"
elements in the schema, with nested content schemas, puls a couple of other nice
featurs like custom validation rules etc. </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=340290413-07122004><FONT face=Arial
color=#0000ff size=2>So you change a schema definition, and if you do it in a
way that the current content stays "compatible" with the new schema, then all
your content will continue to work. This usually means adding new elements with
"minoccurs=0" setting. As already said, the editor will then allow you to
"activate" such an optional element in case the content your are working on does
not have the element set already. This limits the requirement for a "schema
evolution tool" to cases where the schema changes are such that the old content
will not work anymore with the new version of the schema (e.g. adding new
elements with "minoccurs="1").</FONT></SPAN></DIV><!-- Converted from text/plain format -->
<P><FONT size=2>Best Regards,<BR>Alex.<BR><BR>Alexander Kandzior<BR>Alkacon
Software - The OpenCms Experts<BR><A
href="http://www.alkacon.com/">http://www.alkacon.com</A><BR><BR></FONT></P>
<DIV> </DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=de dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> opencms-dev-bounces@opencms.org
[mailto:opencms-dev-bounces@opencms.org] <B>On Behalf Of </B>Jorge
González<BR><B>Sent:</B> Tuesday, December 07, 2004 1:21 PM<BR><B>To:</B>
OpenCms mailing list (E-mail)<BR><B>Subject:</B> [opencms-dev] Refine content
definition schemas<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>Hi
list:</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>This is a possible
new feature, for discussion.</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>Well, version 6
most beautifull feature (for me) is the definition of the content structure,
using a 'simple' xsd schema. The rest of the content management process
(content life cycle) is done by the opencms system.</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>This is wonderfull
if you have a very well defined content domain. But, i fear this is not the
standard on our web projects. Example:</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>The content is
"Product for sale"</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>The marketing guys
want new data, "rating of the product by the users" to be
introduced.</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>Then, with the
actual content definition system and tools, you could modify the xsd, or
introduce another object type, "Rating" with a link to the "Product for sale".
This is a tricky AND slow solution, but could work.</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>The feature is:
Provide a flexible way of editing the content schema after the content
definition and publishing. It could be an script that reads all the content
xml files and checks for correctness, GENERATING the empty fields, possibly
assigning a default value, configured by the admin.</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>It could be more
simple to have a "check xml" script, that lists all the xml content that does
not validate against its schema (showing a link list so you can correct all
the content from that list).</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial size=2>What do you think
about it ?</FONT></SPAN></DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=857180912-07122004><FONT face=Arial
size=2>Jorge.</FONT></SPAN></DIV></BLOCKQUOTE></BODY></HTML>