Return-Path: Delivered-To: apmail-xml-cocoon-cvs-archive@xml.apache.org Received: (qmail 72041 invoked by uid 500); 1 Jul 2002 15:09:26 -0000 Mailing-List: contact cocoon-cvs-help@xml.apache.org; run by ezmlm Precedence: bulk Reply-To: cocoon-dev@xml.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cocoon-cvs@xml.apache.org Received: (qmail 72015 invoked by uid 500); 1 Jul 2002 15:09:25 -0000 Delivered-To: apmail-xml-cocoon2-cvs@apache.org Date: 1 Jul 2002 15:09:21 -0000 Message-ID: <20020701150921.19743.qmail@icarus.apache.org> From: cziegeler@apache.org To: xml-cocoon2-cvs@apache.org Subject: cvs commit: xml-cocoon2/src/scratchpad/webapp/samples/slide README login-failed.html login.html logout.html rdf2html.xsl sitemap.xmap slide.xconf web.xml X-Spam-Rating: 209.66.108.5 1.6.2 0/1000/N cziegeler 2002/07/01 08:09:21 Added: src/scratchpad/webapp/samples/castor sitemap.xmap test.xml src/scratchpad/webapp/samples/castor/castor-mappings test-mapping.xml test-mapping_de.xml src/scratchpad/webapp/samples/castor/doc castortransformer.xml src/scratchpad/webapp/samples/chaperon sitemap.xmap src/scratchpad/webapp/samples/chaperon/grammars java.rgrm mathexp.grm rgrm.grm wiki.grm wiki.rgrm src/scratchpad/webapp/samples/chaperon/misc index.html java.css matex.xsp mathexp.xsp test2.java wiki.xsp src/scratchpad/webapp/samples/chaperon/stylesheets java2html.xsl mathexp2html.xsl parsefragment.xsl rgrm2grm.xsl wiki2html.xsl src/scratchpad/webapp/samples/charts sitemap.xmap src/scratchpad/webapp/samples/charts/content samples.xml src/scratchpad/webapp/samples/charts/content/static bar3Dchart.xml barchart.xml linechart.xml testapplet.xml src/scratchpad/webapp/samples/charts/content/static/bar bar1.xml bar10.xml bar11.xml bar12.xml bar2.xml bar3.xml bar4.xml bar5.xml bar6.xml bar7.xml bar8.xml bar9.xml src/scratchpad/webapp/samples/charts/content/static/line line1.xml line2.xml line3.xml line4.xml line5.xml line6.xml src/scratchpad/webapp/samples/charts/content/static/multi multi1.xml src/scratchpad/webapp/samples/charts/content/static/pie pie1.xml pie2.xml pie3.xml pie4.xml pie5.xml pie6.xml pie7.xml src/scratchpad/webapp/samples/charts/stylesheets simple-samples2html.xsl src/scratchpad/webapp/samples/editor README sitemap.xmap test.xmap src/scratchpad/webapp/samples/editor/docs source.xml tests.xml welcome.xml src/scratchpad/webapp/samples/editor/editor/docs alpha-config.xml bravo-config.xml schematron-page.xml slash-edit.css template.xml welcome.xml src/scratchpad/webapp/samples/editor/editor/images dir.gif file.gif get.gif new.gif see.gif src/scratchpad/webapp/samples/editor/editor/stylesheets dir2editor.xsl editor-alpha-components.xsl editor-bravo-components.xsl editor-components.xsl editor-page2html.xsl editor-utils.xsl editor2writer.xsl file2editor.xsl generation-utils.xsl request2editor.xsl schematron-extensions.xsl schematron-validator2xsl.xsl schematron-wrappers.xsl simple-page2html.xsl stream2editor.xsl validationFilter.xsl src/scratchpad/webapp/samples/editor/stylesheets simple-page2html.xsl src/scratchpad/webapp/samples/editor/tests include-me.xml make-page.xsl result7.xml result8.xml test1.xml test2.xml test3.xml test4.xml test5.xml test7.xml test8.xml src/scratchpad/webapp/samples/editor/tests/test6 inc.xsl input.xml prepareWrite.xsl src/scratchpad/webapp/samples/editor/tests/test9 inc.xsl input.xml prepareWrite.xsl src/scratchpad/webapp/samples/paginator README.txt sitemap.xmap src/scratchpad/webapp/samples/paginator/content list.xml src/scratchpad/webapp/samples/paginator/pagesheets list.pagesheet pagesheet.dtd src/scratchpad/webapp/samples/paginator/stylesheets list2html.xsl pagedlist2html.xsl src/scratchpad/webapp/samples/precept README sitemap.xmap snippet.roles snippet.xconf src/scratchpad/webapp/samples/precept/example1 README error.xml error.xsl thanks.xml thanks.xsl view1.xml view1.xsl view2.xml view2.xsl view3.xml view3.xsl view4.xml view4.xsl src/scratchpad/webapp/samples/precept/example2 README error.xml i2html.xsl thanks.xml view1.xml view2.xml view3.xml view4.xml src/scratchpad/webapp/samples/precept/model easyrelax.xml src/scratchpad/webapp/samples/slide README login-failed.html login.html logout.html rdf2html.xsl sitemap.xmap slide.xconf web.xml Removed: src/scratchpad/webapp/mount/castor sitemap.xmap test.xml src/scratchpad/webapp/mount/castor/castor-mappings test-mapping.xml test-mapping_de.xml src/scratchpad/webapp/mount/castor/doc castortransformer.xml src/scratchpad/webapp/mount/chaperon sitemap.xmap src/scratchpad/webapp/mount/chaperon/grammars java.rgrm mathexp.grm rgrm.grm wiki.grm wiki.rgrm src/scratchpad/webapp/mount/chaperon/misc index.html java.css matex.xsp mathexp.xsp test2.java wiki.xsp src/scratchpad/webapp/mount/chaperon/stylesheets java2html.xsl mathexp2html.xsl parsefragment.xsl rgrm2grm.xsl wiki2html.xsl src/scratchpad/webapp/mount/charts sitemap.xmap src/scratchpad/webapp/mount/charts/content samples.xml src/scratchpad/webapp/mount/charts/content/static bar3Dchart.xml barchart.xml linechart.xml testapplet.xml src/scratchpad/webapp/mount/charts/content/static/bar bar1.xml bar10.xml bar11.xml bar12.xml bar2.xml bar3.xml bar4.xml bar5.xml bar6.xml bar7.xml bar8.xml bar9.xml src/scratchpad/webapp/mount/charts/content/static/line line1.xml line2.xml line3.xml line4.xml line5.xml line6.xml src/scratchpad/webapp/mount/charts/content/static/multi multi1.xml src/scratchpad/webapp/mount/charts/content/static/pie pie1.xml pie2.xml pie3.xml pie4.xml pie5.xml pie6.xml pie7.xml src/scratchpad/webapp/mount/charts/stylesheets simple-samples2html.xsl src/scratchpad/webapp/mount/editor README editor.xmap sitemap.xmap test.xmap src/scratchpad/webapp/mount/editor/docs source.xml tests.xml welcome.xml src/scratchpad/webapp/mount/editor/editor/docs alpha-config.xml bravo-config.xml schematron-page.xml slash-edit.css template.xml welcome.xml src/scratchpad/webapp/mount/editor/editor/images dir.gif file.gif get.gif new.gif see.gif src/scratchpad/webapp/mount/editor/editor/stylesheets dir2editor.xsl editor-alpha-components.xsl editor-bravo-components.xsl editor-components.xsl editor-page2html.xsl editor-utils.xsl editor2writer.xsl file2editor.xsl generation-utils.xsl request2editor.xsl schematron-extensions.xsl schematron-validator2xsl.xsl schematron-wrappers.xsl simple-page2html.xsl stream2editor.xsl validationFilter.xsl src/scratchpad/webapp/mount/editor/stylesheets simple-page2html.xsl src/scratchpad/webapp/mount/editor/tests include-me.xml make-page.xsl result7.xml result8.xml test1.xml test2.xml test3.xml test4.xml test5.xml test7.xml test8.xml src/scratchpad/webapp/mount/editor/tests/test6 inc.xsl input.xml prepareWrite.xsl src/scratchpad/webapp/mount/editor/tests/test9 inc.xsl input.xml prepareWrite.xsl src/scratchpad/webapp/mount/paginator README.txt sitemap.xmap src/scratchpad/webapp/mount/paginator/content list.xml src/scratchpad/webapp/mount/paginator/pagesheets list.pagesheet pagesheet.dtd src/scratchpad/webapp/mount/paginator/stylesheets list2html.xsl pagedlist2html.xsl src/scratchpad/webapp/mount/precept README sitemap.xmap snippet.roles snippet.xconf src/scratchpad/webapp/mount/precept/example1 README error.xml error.xsl thanks.xml thanks.xsl view1.xml view1.xsl view2.xml view2.xsl view3.xml view3.xsl view4.xml view4.xsl src/scratchpad/webapp/mount/precept/example2 README error.xml i2html.xsl thanks.xml view1.xml view2.xml view3.xml view4.xml src/scratchpad/webapp/mount/precept/model easyrelax.xml src/scratchpad/webapp/mount/slide README login-failed.html login.html logout.html rdf2html.xsl sitemap.xmap slide.xconf web.xml Log: Moved all samples from mount to samples Revision Changes Path 1.3 +1 -1 xml-cocoon2/src/scratchpad/webapp/samples/castor/sitemap.xmap 1.3 +0 -0 xml-cocoon2/src/scratchpad/webapp/samples/castor/test.xml 1.3 +0 -0 xml-cocoon2/src/scratchpad/webapp/samples/castor/castor-mappings/test-mapping.xml 1.3 +0 -0 xml-cocoon2/src/scratchpad/webapp/samples/castor/castor-mappings/test-mapping_de.xml 1.3 +0 -0 xml-cocoon2/src/scratchpad/webapp/samples/castor/doc/castortransformer.xml 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/sitemap.xmap Index: sitemap.xmap =================================================================== true false 1024 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/grammars/java.rgrm Index: java.rgrm =================================================================== /*------------------------------------------------------------------ * Copyright (C) * 1996, 1997, 1998 Dmitri Bronnikov, All rights reserved. * * THIS GRAMMAR IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE, OR NON-INFRINGMENT. * * Bronikov@inreach.com * *------------------------------------------------------------------ * * VERSION 1.06 DATE 20 AUG 1998 * *------------------------------------------------------------------ * * UPDATES * * 1.06 Correction of Java 1.1 syntax * 1.05 Yet more Java 1.1 * . * 1.04 More Java 1.1 features: * .this * .class * 1.03 Added Java 1.1 features: * inner classes, * anonymous classes, * non-static initializer blocks, * array initialization by new operator * 1.02 Corrected cast expression syntax * 1.01 All shift/reduce conflicts, except dangling else, resolved * *------------------------------------------------------------------ * * PARSING CONFLICTS RESOLVED * * Some Shift/Reduce conflicts have been resolved at the expense of * the grammar defines a superset of the language. The following * actions have to be performed to complete program syntax checking: * * 1) Check that modifiers applied to a class, interface, field, * or constructor are allowed in respectively a class, inteface, * field or constructor declaration. For example, a class * declaration should not allow other modifiers than abstract, * final and public. * * 2) For an expression statement, check it is either increment, or * decrement, or assignment expression. * * 3) Check that type expression in a cast operator indicates a type. * Some of the compilers that I have tested will allow simultaneous * use of identically named type and variable in the same scope * depending on context. * * 4) Change lexical definition to change '[' optionally followed by * any number of white-space characters immediately followed by ']' * to OP_DIM token. I defined this token as [\[]{white_space}*[\]] * in the lexer. * *------------------------------------------------------------------ * * UNRESOLVED SHIFT/REDUCE CONFLICTS * * Dangling else in if-then-else * *------------------------------------------------------------------ */ %uri "http://chaperon.sourceforge.net/grammar/java/1.0"; %token DOPEN \(; %token DCLOSE \); %token COPEN \{; %token CCLOSE \}; %token BOPEN \[; %token BCLOSE \]; %token SEMICOLON \;; %token COMMA \,; %token DOT \.; %token OP_EQ ==; %token OP_LE \<=; %token OP_GE \>=; %token OP_NE !=; %token OP_LOR \|\|; %token OP_LAND &&; %token OP_INC \+\+; %token OP_DEC \-\-; %token OP_SHR \>\>; %token OP_SHL \<\<; %token OP_SHRR \>\>\>; %token ASS_OP \+= | \-= | \*= | /= | &= | \|= | \^= | \%= | \<\<= | \>\>= | \>\>\>=; %token EQ \=; %token GT \>; %token LT \<; %token NOT \!; %token TILDE \~; %token QM \?; %token COLON \:; %token PLUS \+; %token MINUS \-; %token MULT \*; %token DIV \/; %token AND \&; %token OR \|; %token XOR \^; %token MOD \%; %token BOOLLIT true|false; %token ABSTRACT abstract; %token DO do; %token IMPLEMENTS implements; %token PACKAGE package; %token THROW throw; %token BOOLEAN boolean; %token DOUBLE double; %token IMPORT import; %token PRIVATE private; %token THROWS throws; %token BREAK break; %right ELSE else; %token INNER inner; %token PROTECTED protected; %token TRANSIENT transient; %token BYTE byte; %token EXTENDS extends; %token INSTANCEOF instanceof; %token PUBLIC public; %token TRY try; %token CASE case; %token FINAL final; %token INT int; %token REST rest; %token VAR var; %token CAST cast; %token FINALLY finally; %token INTERFACE interface; %token RETURN return; %token VOID void; %token CATCH catch; %token FLOAT float; %token LONG long; %token SHORT short; %token VOLATILE volatile; %token CHAR char; %token FOR for; %token NATIVE native; %token STATIC static; %token WHILE while; %token CLASS class; %token FUTURE future; %token NEW new; %token SUPER super; %token CONST const; %token GENERIC generic; %token NULL null; %token SWITCH switch; %token CONTINUE continue; %token GOTO goto; %token OPERATOR operator; %token SYNCHRONIZED synchronized; %token DEFAULT default; %token IF if; %token OUTER outer; %token THIS this; %ab HexDigit [0-9a-fA-F]; %ab Digit [0-9]; %ab OctalDigit [0-7]; %ab TetraDigit [0-3]; %ab NonZeroDigit [1-9]; %ab Letter [a-zA-Z_]; %ab AnyButSlash [^\/]; %ab AnyButAstr [^\*]; %ab UniEsc [\1b]; %ab OctEscape1 \\ ; %ab OctEscape2 \\ ; %ab OctEscape3 \\ ; %ab OctEscape (||); %ab Escape [\\]([rnbft\\\'\"]); %ab ULetter (|); %ab Identifier (|)*; %ab IntSuffix (l|L); %ab DecimalNum *?; %ab OctalNum 0 *?; %ab HexNum 0 (x|X) *?; %ab IntegerLiteral (||); %ab Sign (\+ | \-); %ab FlSuffix (f|F|d|D); %ab SignedInt ?+; %ab Expo (e|E); %ab ExponentPart ?; %ab Float1 + \. (+)???; %ab Float2 \. +??; %ab Float3 +?; %ab Float4 +; %ab FloatingPoint (|||); %ab AnyChrChr [^\\']; %ab AnyStrChr [^\\\"]; %ab Character \' (||) \' ; %ab String \" (||)* \" ; %ab Numeric (|); %token LITERAL (||); %token IDENTIFIER ([a-zA-Z_]|[\1b])(([a-zA-Z_]|[\1b])|[0-9])*; //%token OP_DIM \[ ([\r\n\f\t\b\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ | // \/ \/ (.*)))* \] ; //%whitespace [\r\n\f\t\b\ ]; %token OP_DIM \[ ([\r\n\t\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ | \/ \/ (.*)))* \] ; %ignore whitespace [\t\ ]; %ignore eol \r(\n)?|\n; %ab Comment1 \/ \* (|[\*])* \* \/; %ab Comment2 \/ \/ (.*); %ignore comment (|); %start CompilationUnit; %% TypeSpecifier : TypeName | TypeName Dims ; TypeName : PrimitiveType | QualifiedName ; ClassNameList : QualifiedName | ClassNameList COMMA QualifiedName ; PrimitiveType : BOOLEAN | CHAR | BYTE | SHORT | INT | LONG | FLOAT | DOUBLE | VOID ; SemiColons : SEMICOLON | SemiColons SEMICOLON ; CompilationUnit : ProgramFile ; ProgramFile : PackageStatement ImportStatements TypeDeclarations | PackageStatement ImportStatements | PackageStatement TypeDeclarations | ImportStatements TypeDeclarations | PackageStatement | ImportStatements | TypeDeclarations ; PackageStatement : PACKAGE QualifiedName SemiColons ; TypeDeclarations : TypeDeclarationOptSemi | TypeDeclarations TypeDeclarationOptSemi ; TypeDeclarationOptSemi : TypeDeclaration | TypeDeclaration SemiColons ; ImportStatements : ImportStatement | ImportStatements ImportStatement ; ImportStatement : IMPORT QualifiedName SemiColons | IMPORT QualifiedName DOT MULT SemiColons ; QualifiedName : IDENTIFIER %append | QualifiedName DOT IDENTIFIER %append ; TypeDeclaration : ClassHeader COPEN FieldDeclarations CCLOSE | ClassHeader COPEN CCLOSE ; ClassHeader : Modifiers ClassWord IDENTIFIER Extends Interfaces | Modifiers ClassWord IDENTIFIER Extends | Modifiers ClassWord IDENTIFIER Interfaces | ClassWord IDENTIFIER Extends Interfaces | Modifiers ClassWord IDENTIFIER | ClassWord IDENTIFIER Extends | ClassWord IDENTIFIER Interfaces | ClassWord IDENTIFIER ; Modifiers : Modifier %append | Modifiers Modifier %append ; Modifier : ABSTRACT | FINAL | PUBLIC | PROTECTED | PRIVATE | STATIC | TRANSIENT | VOLATILE | NATIVE | SYNCHRONIZED ; ClassWord : CLASS | INTERFACE ; Interfaces : IMPLEMENTS ClassNameList ; FieldDeclarations : FieldDeclarationOptSemi | FieldDeclarations FieldDeclarationOptSemi ; FieldDeclarationOptSemi : FieldDeclaration | FieldDeclaration SemiColons ; FieldDeclaration : FieldVariableDeclaration SEMICOLON | MethodDeclaration | ConstructorDeclaration | StaticInitializer | NonStaticInitializer | TypeDeclaration ; FieldVariableDeclaration : Modifiers TypeSpecifier VariableDeclarators | TypeSpecifier VariableDeclarators ; VariableDeclarators : VariableDeclarator | VariableDeclarators COMMA VariableDeclarator ; VariableDeclarator : DeclaratorName | DeclaratorName EQ VariableInitializer ; VariableInitializer : Expression | COPEN CCLOSE | COPEN ArrayInitializers CCLOSE ; ArrayInitializers : VariableInitializer | ArrayInitializers COMMA VariableInitializer | ArrayInitializers COMMA ; MethodDeclaration : Modifiers TypeSpecifier MethodDeclarator Throws MethodBody | Modifiers TypeSpecifier MethodDeclarator MethodBody | TypeSpecifier MethodDeclarator Throws MethodBody | TypeSpecifier MethodDeclarator MethodBody ; MethodDeclarator : DeclaratorName DOPEN ParameterList DCLOSE | DeclaratorName DOPEN DCLOSE | MethodDeclarator OP_DIM ; ParameterList : Parameter | ParameterList COMMA Parameter ; Parameter : TypeSpecifier DeclaratorName | FINAL TypeSpecifier DeclaratorName ; DeclaratorName : IDENTIFIER | DeclaratorName OP_DIM ; Throws : THROWS ClassNameList ; MethodBody : Block | SEMICOLON ; ConstructorDeclaration : Modifiers ConstructorDeclarator Throws Block | Modifiers ConstructorDeclarator Block | ConstructorDeclarator Throws Block | ConstructorDeclarator Block ; ConstructorDeclarator : IDENTIFIER DOPEN ParameterList DCLOSE | IDENTIFIER DOPEN DCLOSE ; StaticInitializer : STATIC Block ; NonStaticInitializer : Block ; Extends : EXTENDS TypeName | Extends COMMA TypeName ; Block : COPEN LocalVariableDeclarationsAndStatements CCLOSE | COPEN CCLOSE ; LocalVariableDeclarationsAndStatements : LocalVariableDeclarationOrStatement %append | LocalVariableDeclarationsAndStatements LocalVariableDeclarationOrStatement %append ; LocalVariableDeclarationOrStatement : LocalVariableDeclarationStatement | Statement ; LocalVariableDeclarationStatement : TypeSpecifier VariableDeclarators SEMICOLON | FINAL TypeSpecifier VariableDeclarators SEMICOLON ; Statement : EmptyStatement | LabelStatement | ExpressionStatement SEMICOLON | SelectionStatement | IterationStatement | JumpStatement | GuardingStatement | Block ; EmptyStatement : SEMICOLON ; LabelStatement : IDENTIFIER COLON | CASE ConstantExpression COLON | DEFAULT COLON ; ExpressionStatement : Expression ; SelectionStatement : IF DOPEN Expression DCLOSE Statement %prec ELSE | IF DOPEN Expression DCLOSE Statement ELSE Statement %prec ELSE | SWITCH DOPEN Expression DCLOSE Block ; IterationStatement : WHILE DOPEN Expression DCLOSE Statement | DO Statement WHILE DOPEN Expression DCLOSE SEMICOLON | FOR DOPEN ForInit ForExpr ForIncr DCLOSE Statement | FOR DOPEN ForInit ForExpr DCLOSE Statement ; ForInit : ExpressionStatements SEMICOLON | LocalVariableDeclarationStatement | SEMICOLON ; ForExpr : Expression SEMICOLON | SEMICOLON ; ForIncr : ExpressionStatements ; ExpressionStatements : ExpressionStatement %resolve | ExpressionStatements COMMA ExpressionStatement ; JumpStatement : BREAK IDENTIFIER SEMICOLON | BREAK SEMICOLON | CONTINUE IDENTIFIER SEMICOLON | CONTINUE SEMICOLON | RETURN Expression SEMICOLON | RETURN SEMICOLON | THROW Expression SEMICOLON ; GuardingStatement : SYNCHRONIZED DOPEN Expression DCLOSE Statement | TRY Block Finally | TRY Block Catches | TRY Block Catches Finally ; Catches : Catch | Catches Catch ; Catch : CatchHeader Block ; CatchHeader : CATCH DOPEN TypeSpecifier IDENTIFIER DCLOSE | CATCH DOPEN TypeSpecifier DCLOSE ; Finally : FINALLY Block ; PrimaryExpression : QualifiedName %resolve | NotJustName %resolve ; NotJustName : SpecialName %resolve | NewAllocationExpression %resolve | ComplexPrimary %resolve ; ComplexPrimary : DOPEN Expression DCLOSE | ComplexPrimaryNoParenthesis %resolve ; ComplexPrimaryNoParenthesis : LITERAL | BOOLLIT | ArrayAccess | FieldAccess | MethodCall ; ArrayAccess : QualifiedName BOPEN Expression BCLOSE | ComplexPrimary BOPEN Expression BCLOSE ; FieldAccess : NotJustName DOT IDENTIFIER | RealPostfixExpression DOT IDENTIFIER | QualifiedName DOT THIS | QualifiedName DOT CLASS | PrimitiveType DOT CLASS ; MethodCall : MethodAccess DOPEN ArgumentList DCLOSE | MethodAccess DOPEN DCLOSE ; MethodAccess : ComplexPrimaryNoParenthesis | SpecialName | QualifiedName ; SpecialName : THIS | SUPER | NULL ; ArgumentList : Expression | ArgumentList COMMA Expression ; NewAllocationExpression : PlainNewAllocationExpression | QualifiedName DOT PlainNewAllocationExpression ; PlainNewAllocationExpression : ArrayAllocationExpression | ClassAllocationExpression | ArrayAllocationExpression COPEN CCLOSE | ClassAllocationExpression COPEN CCLOSE | ArrayAllocationExpression COPEN ArrayInitializers CCLOSE | ClassAllocationExpression COPEN FieldDeclarations CCLOSE ; ClassAllocationExpression : NEW TypeName DOPEN ArgumentList DCLOSE | NEW TypeName DOPEN DCLOSE ; ArrayAllocationExpression : NEW TypeName DimExprs Dims | NEW TypeName DimExprs | NEW TypeName Dims ; DimExprs : DimExpr | DimExprs DimExpr ; DimExpr : BOPEN Expression BCLOSE ; Dims : OP_DIM | Dims OP_DIM ; PostfixExpression : PrimaryExpression %resolve | RealPostfixExpression %resolve ; RealPostfixExpression : PostfixExpression OP_INC | PostfixExpression OP_DEC ; UnaryExpression : OP_INC UnaryExpression | OP_DEC UnaryExpression | ArithmeticUnaryOperator CastExpression | LogicalUnaryExpression %resolve ; LogicalUnaryExpression : PostfixExpression %resolve | LogicalUnaryOperator UnaryExpression ; LogicalUnaryOperator : TILDE | NOT ; ArithmeticUnaryOperator : PLUS | MINUS ; CastExpression : UnaryExpression %resolve | DOPEN PrimitiveTypeExpression DCLOSE CastExpression | DOPEN ClassTypeExpression DCLOSE CastExpression | DOPEN Expression DCLOSE LogicalUnaryExpression ; PrimitiveTypeExpression : PrimitiveType | PrimitiveType Dims ; ClassTypeExpression : QualifiedName Dims ; MultiplicativeExpression : CastExpression %resolve | MultiplicativeExpression MULT CastExpression | MultiplicativeExpression DIV CastExpression | MultiplicativeExpression MOD CastExpression ; AdditiveExpression : MultiplicativeExpression %resolve | AdditiveExpression PLUS MultiplicativeExpression | AdditiveExpression MINUS MultiplicativeExpression ; ShiftExpression : AdditiveExpression %resolve | ShiftExpression OP_SHL AdditiveExpression | ShiftExpression OP_SHR AdditiveExpression | ShiftExpression OP_SHRR AdditiveExpression ; RelationalExpression : ShiftExpression %resolve | RelationalExpression LT ShiftExpression | RelationalExpression GT ShiftExpression | RelationalExpression OP_LE ShiftExpression | RelationalExpression OP_GE ShiftExpression | RelationalExpression INSTANCEOF TypeSpecifier ; EqualityExpression : RelationalExpression %resolve | EqualityExpression OP_EQ RelationalExpression | EqualityExpression OP_NE RelationalExpression ; AndExpression : EqualityExpression %resolve | AndExpression AND EqualityExpression ; ExclusiveOrExpression : AndExpression %resolve | ExclusiveOrExpression XOR AndExpression ; InclusiveOrExpression : ExclusiveOrExpression %resolve | InclusiveOrExpression OR ExclusiveOrExpression ; ConditionalAndExpression : InclusiveOrExpression %resolve | ConditionalAndExpression OP_LAND InclusiveOrExpression ; ConditionalOrExpression : ConditionalAndExpression %resolve | ConditionalOrExpression OP_LOR ConditionalAndExpression ; ConditionalExpression : ConditionalOrExpression %resolve | ConditionalOrExpression QM Expression COLON ConditionalExpression ; AssignmentExpression : ConditionalExpression %resolve | UnaryExpression AssignmentOperator AssignmentExpression ; AssignmentOperator : EQ | ASS_OP ; Expression : AssignmentExpression ; ConstantExpression : ConditionalExpression ; 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/grammars/mathexp.grm Index: mathexp.grm =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/grammars/rgrm.grm Index: rgrm.grm =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/grammars/wiki.grm Index: wiki.grm =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/grammars/wiki.rgrm Index: wiki.rgrm =================================================================== %uri "http://chaperon.sourceforge.net/grammar/wiki/1.0"; %token LINE \-\-\-(\-)+; %token QUOTE :; %token BULLETED (\*)+; %token NUMBERED3 \#\#\#; %token NUMBERED2 \#\#; %token NUMBERED1 \#; %token HEAD (\!)+; %left ITALIC \"; %left BOLD __; %left UNDERLINE _; %token LINK (http|ftp|mailto|news):(/){1,3}[A-Za-z0-9\.\_\-]*; %token BOPEN \[; %token BCLOSE \]; %token TEXT [A-Za-z0-9\,\'\.\?\:]+[A-Za-z0-9\ \t\,\'\.\?\!\:]*; %left EMPTY \r\n [\ \t]* \r\n | \r [\ \t]* \r | \n [\ \t]* \n ; %token EOL (\r(\n)?|\n); %start wiki; %ignore whitespace [\ \r\n]+; %% wiki : wiki paragraphs %append | paragraphs %append ; paragraphs : paragraphs paragraph %append | paragraph %append ; paragraph : bulletedlist | numberedlist1 | textitem | headitem | footnote | LINE | EMPTY ; bulletedlist : bulletedlist bulletedlistitem %append | bulletedlistitem %append ; bulletedlistitem : BULLETED textblock textsequence | BULLETED textblock ; numberedlist1 : numberedlist1 numberedlistitem1 %append | numberedlistitem1 %append | numberedlist1 numberedlist2 %append | numberedlist2 %append ; numberedlistitem1 : NUMBERED1 textblock textsequence | NUMBERED1 textblock ; numberedlist2 : numberedlist2 numberedlistitem2 %append | numberedlistitem2 %append | numberedlist2 numberedlist3 %append | numberedlist3 %append ; numberedlistitem2 : NUMBERED2 textblock textsequence | NUMBERED2 textblock ; numberedlist3 : numberedlist3 numberedlistitem3 %append | numberedlistitem3 %append ; numberedlistitem3 : NUMBERED3 textblock textsequence | NUMBERED3 textblock ; textitem : firstblock textblock textsequence | firstblock textblock | firstblock ; headitem : HEAD textblock textsequence | HEAD textblock ; footnote : note textblock textsequence | note textblock ; textsequence : textsequence EOL %resolve | EOL %resolve | textsequence textblock %resolve | textblock %resolve ; textblock : LINK | boldblock | italicblock | underlineblock | TEXT | note ; firstblock : LINK | boldblock | italicblock | underlineblock | TEXT ; italicblock : ITALIC TEXT ITALIC ; boldblock : BOLD TEXT BOLD ; underlineblock : UNDERLINE TEXT UNDERLINE ; note : BOPEN TEXT BCLOSE | BOPEN LINK BCLOSE ; 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/index.html Index: index.html =================================================================== Chaperon Examples

Chaperon Examples

1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/java.css Index: java.css =================================================================== body { background-color: #FFFFFF; } body { color: #000000} #Header { color: #ffffff; background-color:#8697a5 } #CharacerLiteral { color: #FF00FF; } #StringLiteral { color: #FF00FF; } #SingleLineComment { color: #008000; } #FormalComment { color: #008000; } #MultiLineComment { color: #008000; } #ABSTRACT { color: #0000FF ; font-weight: bold } #BOOLEAN { color: #0000FF ; font-weight: bold } #BREAK { color: #0000FF ; font-weight: bold } #BYTE { color: #0000FF ; font-weight: bold } #CASE { color: #0000FF ; font-weight: bold } #CATCH { color: #0000FF ; font-weight: bold } #CHAR { color: #0000FF ; font-weight: bold } #CLASS { color: #0000FF ; font-weight: bold } #CONST { color: #0000FF ; font-weight: bold } #CONTINUE { color: #0000FF ; font-weight: bold } #DEFAULT { color: #0000FF ; font-weight: bold } #DO { color: #0000FF ; font-weight: bold } #DOUBLE { color: #0000FF ; font-weight: bold } #ELSE { color: #0000FF ; font-weight: bold } #EXTENDS { color: #0000FF ; font-weight: bold } #FALSE { color: #0000FF ; font-weight: bold } #FINAL { color: #0000FF ; font-weight: bold } #FINALLY { color: #0000FF ; font-weight: bold } #FLOAT { color: #0000FF ; font-weight: bold } #FOR { color: #0000FF ; font-weight: bold } #GOTO { color: #0000FF ; font-weight: bold } #IF { color: #0000FF ; font-weight: bold } #IMPLEMENTS { color: #0000FF ; font-weight: bold } #IMPORT { color: #0000FF ; font-weight: bold } #INSTANCEOF { color: #0000FF ; font-weight: bold } #INT { color: #0000FF ; font-weight: bold } #INTERFACE { color: #0000FF ; font-weight: bold } #LONG { color: #0000FF ; font-weight: bold } #NATIVE { color: #0000FF ; font-weight: bold } #NEW { color: #0000FF ; font-weight: bold } #PACKAGE { color: #0000FF ; font-weight: bold } #PRIVATE { color: #0000FF ; font-weight: bold } #PROTECTED { color: #0000FF ; font-weight: bold } #PUBLIC { color: #0000FF ; font-weight: bold } #RETURN { color: #0000FF ; font-weight: bold } #SHORT { color: #0000FF ; font-weight: bold } #STATIC { color: #0000FF ; font-weight: bold } #SUPER { color: #0000FF ; font-weight: bold } #SWITCH { color: #0000FF ; font-weight: bold } #SYCHRONIZED { color: #0000FF ; font-weight: bold } #THIS { color: #0000FF ; font-weight: bold } #THROW { color: #0000FF ; font-weight: bold } #THROWS { color: #0000FF ; font-weight: bold } #TRANSIENT { color: #0000FF ; font-weight: bold } #TRUE { color: #0000FF ; font-weight: bold } #TRY { color: #0000FF ; font-weight: bold } #VOID { color: #0000FF ; font-weight: bold } #VOLATILE { color: #0000FF ; font-weight: bold } #WHILE { color: #0000FF ; font-weight: bold } #StrictFP { color: #0000FF ; font-weight: bold } #LITERAL { color: #b27b8c } #IDENTIFIER { color: #000000 } 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/matex.xsp Index: matex.xsp =================================================================== Matex Exmaple

Matex Exmaple

text text 80 110

1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/mathexp.xsp Index: mathexp.xsp =================================================================== Mathexp Example

Mathexp Example

text text 80 110

1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/test2.java Index: test2.java =================================================================== /* * Copyright (C) Chaperon. All rights reserved. * ------------------------------------------------------------------------- * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package net.sourceforge.chaperon.helpers; /** * The class maskes special characters * * @author Stephan Michels * @version %version% */ public class Decoder { /** * Mask special characters * * @param string String * * @return Mask string */ public static String decode(String string) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < string.length(); i++) { if (string.charAt(i) == '\n') buffer.append("\\n"); else if (string.charAt(i) == '\t') buffer.append("\\t"); else if (string.charAt(i) == '\r') buffer.append("\\r"); else if (string.charAt(i) == '\"') buffer.append("\""); else if (string.charAt(i) == '\\') buffer.append("\\"); else if ((string.charAt(i) >= '!') && (string.charAt(i) <= '~')) buffer.append(string.charAt(i)); else { String hexstring = Integer.toHexString((int) string.charAt(i)); String zeros = "0000"; buffer.append("\\u" + zeros.substring(4 - hexstring.length()) + hexstring); } } return buffer.toString(); } } 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/misc/wiki.xsp Index: wiki.xsp =================================================================== Wiki example
Wiki example

Preview

Content

1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/stylesheets/java2html.xsl Index: java2html.xsl =================================================================== MethodDeclaration java2html example
       
      
1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/stylesheets/mathexp2html.xsl Index: mathexp2html.xsl ===================================================================
1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/stylesheets/parsefragment.xsl Index: parsefragment.xsl =================================================================== math 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/stylesheets/rgrm2grm.xsl Index: rgrm2grm.xsl =================================================================== left right append resolve neglect 1.1 xml-cocoon2/src/scratchpad/webapp/samples/chaperon/stylesheets/wiki2html.xsl Index: wiki2html.xsl =================================================================== Wiki example


  • [] []
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/sitemap.xmap Index: sitemap.xmap =================================================================== -//W3C//DTD SVG 20000303 Stylable//EN http://www.w3.org/TR/2000/03/WD-SVG-20000303/ 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/samples.xml Index: samples.xml =================================================================== to Cocoon examples main page Line chart. Line chart. Line chart. Line chart. Line chart. Line chart. Line chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Bar chart. Pie chart. Pie chart. Pie chart. Pie chart. Pie chart. Pie chart. Pie chart. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar3Dchart.xml Index: bar3Dchart.xml =================================================================== bar Cocoon 1 vs Cocoon 2 :) #ffffff #666666 400 280 0 7 1 3 5 2 6 3 2 6 5 2 6 3 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/barchart.xml Index: barchart.xml =================================================================== bar Cocoon 1 vs Cocoon 2 :) #ffffff #666666 400 280 0 7 1 3 5 2 6 3 2 6 5 2 6 3 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/linechart.xml Index: linechart.xml =================================================================== line Cocoon 1 vs Cocoon 2 :) #ffffff #666666 400 280 0 7 1 3 5 2 6 3 2 6 5 2 6 3 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/testapplet.xml Index: testapplet.xml =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar1.xml Index: bar1.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 199175.6 75.6 75.6 74.6 74.6 74.6 199273.6 73.6 73.6 73.6 72.6 199372.6 87 88.6 89.7 90.6 92.6 92.6 94.6 96.6 98.6 98.6 99.6 99.6 101 103 106 106 109 90 89.6 90.7 91.6 93.6 94.6 95.6 97.6 108.6 108.6 109.6 109.6 111 113 116 116 119 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar10.xml Index: bar10.xml =================================================================== test Set A2000 Set B1000 Set C3000 Set D-500 Set E8000 Set F5000 Set G10000 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar11.xml Index: bar11.xml =================================================================== test Set A2000 Set B1000 Set C3000 Set D-500 Set E8000 Set F5000 Set G10000 Set A-2000 Set B-1000 Set C-3000 Set D500 Set E-8000 Set F-5000 Set G-15000 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar12.xml Index: bar12.xml =================================================================== test Set A2 Set B1 Set C3 Set D-5 Set E8 Set F5 Set G10 Set A-2 Set B-10 Set C-3 Set D5 Set E-8 Set F-5 Set G-15 Set A12 Set B-10 Set C3 Set D1 Set E13 Set F9 Set G5 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar2.xml Index: bar2.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 199175.6 75.6 75.6 74.6 74.6 74.6 199273.6 73.6 73.6 73.6 72.6 199372.6 87 88.6 89.7 90.6 92.6 92.6 94.6 96.6 98.6 98.6 99.6 99.6 101 103 106 106 109 90 94.6 95.7 96.6 97.6 99.6 100.6 102.6 113.6 113.6 113.6 114.6 116 117 121 121 127 95 99.6 110.7 111.6 113.6 114.6 115.6 117.6 128.6 128.6 129.6 129.6 131 133 136 146 159 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar3.xml Index: bar3.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 199175.6 75.6 75.6 74.6 74.6 74.6 199273.6 73.6 73.6 73.6 72.6 199372.6 87 88.6 89.7 90.6 92.6 92.6 94.6 96.6 98.6 98.6 99.6 99.6 101 103 106 106 109 90 94.6 95.7 96.6 97.6 99.6 100.6 102.6 113.6 113.6 113.6 114.6 116 117 121 121 127 95 99.6 110.7 111.6 113.6 114.6 115.6 117.6 128.6 128.6 129.6 129.6 131 133 136 146 159 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar4.xml Index: bar4.xml =================================================================== test Set A80 Set B77.6 Set C75.7 Set D76.6 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar5.xml Index: bar5.xml =================================================================== test Set A80% Set B77.6% Set C% Set D7% 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar6.xml Index: bar6.xml =================================================================== test Set A80 Set B Set C150 Set D207 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar7.xml Index: bar7.xml =================================================================== test Set A0.02 Set B0.01 Set C0.6 Set D0.43 Set E0.95 Set F0.32 Set G0.45 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar8.xml Index: bar8.xml =================================================================== test Set A20 Set B-10 Set C30 Set D-5 Set E80 Set F50 Set G-10 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/bar/bar9.xml Index: bar9.xml =================================================================== test Set A0.00120 Set B0.003 Set C0.002 Set D0.0005 Set E0.007 Set F0.002 Set G0.006 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line1.xml Index: line1.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 199175.6 75.6 75.6 74.6 74.6 74.6 199273.6 73.6 73.6 73.6 72.6 199372.6 87 88.6 89.7 90.6 92.6 92.6 94.6 96.6 98.6 98.6 99.6 99.6 101 103 106 106 109 90 89.6 90.7 91.6 93.6 94.6 95.6 97.6 108.6 108.6 109.6 109.6 111 113 116 116 119 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line2.xml Index: line2.xml =================================================================== test 19908 10 12 13 15 199120 21 23 25 40 45 199230 35 41 42 47 199355 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line3.xml Index: line3.xml =================================================================== test 199080 130 150 180 190 1991160 150 145 140 146 150 1992170 210 220 250 300 1993350 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line4.xml Index: line4.xml =================================================================== test 199080 199170 1992170 199380 199395 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line5.xml Index: line5.xml =================================================================== test 199080 30 10 1991-20 -60 -80 1992-50 -40 -10 199320 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/line/line6.xml Index: line6.xml =================================================================== test 1990-80 -30 -10 1991-20 -60 -80 1992-50 -40 -10 1993-20 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/multi/multi1.xml Index: multi1.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 199175.6 75.6 75.6 74.6 74.6 74.6 199273.6 73.6 73.6 73.6 72.6 199372.6 87 88.6 89.7 90.6 92.6 92.6 94.6 96.6 98.6 98.6 99.6 99.6 101 103 106 106 109 90 89.6 90.7 91.6 93.6 94.6 95.6 97.6 108.6 108.6 109.6 109.6 111 113 116 116 119 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie1.xml Index: pie1.xml =================================================================== test 199080 77.6 75.7 76.6 76.6 73.6 73.6 72.6 199372.6 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie2.xml Index: pie2.xml =================================================================== embeddedPieChart 100,0% 0,0% 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie3.xml Index: pie3.xml =================================================================== test AAAAAAA3 BBBBBBB47.6 CCCC55.7 DDDDD26.6 EEEEE70 FFFF3 G6 HHHHHHH7.6 IIIII2.6 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie4.xml Index: pie4.xml =================================================================== test 199010 7.6 5 6 26 73 73 72 199372 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie5.xml Index: pie5.xml =================================================================== test 19908 199177.6 19925.7 19936.6 199476.6 19953.6 19963.6 199772.6 19982.6 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie6.xml Index: pie6.xml =================================================================== test 180 277.6 35.072 46.564 53.324 62.275 73.6 872.6 972.6 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/content/static/pie/pie7.xml Index: pie7.xml =================================================================== test 14.01 26.04 35.16 476.6 576.6 673.6 773.6 82.55 1.1 xml-cocoon2/src/scratchpad/webapp/samples/charts/stylesheets/simple-samples2html.xsl Index: simple-samples2html.xsl =================================================================== Samples

    Samples

    Copyright © 1999-2001 poi project founders.
    All rights reserved.



    -
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/README Index: README =================================================================== SourceWritingTransformer - Installation Notes. Once you have the latest copy of Cocoon 2.1 HEAD Branch from CVS, compile it. You could use the following command: ./build.sh -Dinclude.webapp.libs=yes -Dinclude.scratchpad.libs=yes webapp This ensures the scratchpad libraries are included in the build. Next, move cocoon.war to your webapps directory, and start TomCat. In your browser go to: Please report any problems. There is a sample editor, called . It allows you to edit XML files in the outer 'editor/docs/' directory. Currently there are two samples, one (Alpha) can edit the entire file in one form field, the other (Bravo) breaks down the xml into seperate form fields, converting and
    tags to double and single linebreaks in the form, and back agian on submit. Alpha uses the StreamGenerator to Parse the Request data so it can only handle a single field. The main problem with it is that if there is an error in your XML, your will only get part of it written to disk. Bravo, does not suffer from this problem because the form fields are not Parsed, the problem now is that you cannot write any XML tags, without them turning into Entities. Maybe this is useful for some purposes. I think we will need a RequestParsingGenerator, that can selectively parse fields, and signal via the generated XML that there has been a Parsing error, not by throwing SaxExceptions, that way mal-formed XML in form fields can be handled more gracefully. To use this in your project, you need to add the inner 'editor' folder and 'editor.xmap' to your project, and add the 'editor pipelines' from the file 'sitemap.xmap' to your sitemap. Then you need to develop components for your particular document markup! ie. StyleSheets that understand your documents, editor config for your forms etc. Here is a breakdown of the StyleSheets used by the editor, and what they do: Generation Stage generation-components.xsl contains generic generation components for things like: CR to para tag conversion, calculating browser path etc. dir2editor.xsl converts a directory listing from the XPathDirectoryGenerator into an Editor file2editor.xsl copies the output of the FileGenerator request2editor.xsl constructs a new document from the output of the RequestGenerator stream2editor.xsl constructs a new document from the output of the StreamGenerator Validation Stage validationFilter.xsl modifies the behaviour of the request to 'get', if a validation error has occurred, so that the user can re-edit the content editor2writer.xsl wraps the instance data in tags to get SourceWritingTransformer to do it's job, when the behaviour is 'put' schematron-validator2xsl.xsl main validation.xsl generator, set up specifically for slash-edit schematron-wrappers.xsl wrappers to handle slash-edit data schematron-extensions.xsl extension to calculate paths to fields (needs rewriting) Rendering Stage editor-alpha-components.xsl Handles Alpha form creation editor-bravo-components.xsl Handles Bravo Form creation editor-components.xsl contains generic editor components for things like: directory listing formatting, source:write reporting, editor-view etc. editor-page2html.xsl controls the style of the page for all 'behaviours' calling different templates as appropriate. It xsl:include's 'editor-components.xsl', 'editor-utils.xsl', 'editor-alpha-components.xsl' and 'editor-bravo-components.xsl'. It reacts to the behaviour name embedded in the structure of the xml, by the generation process editor-utils.xsl a few generic utilities used by editor-page2html.xsl simple-page2html.xsl renders welcome page The file 'mount/editor/editor/docs/[sub-editor]-config.xml' contains information used by 'editor-page2html.xsl' such as the names of buttons, the tools for each behaviour, the available commands etc. for each sub-editor. Thanks Jeremy Quinn 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/sitemap.xmap Index: sitemap.xmap =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/test.xmap Index: test.xmap =================================================================== utf-8 no 2 my-xml-serializer 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/docs/source.xml Index: source.xml =================================================================== SourceWritingTransformer NB: SourceWritingTransformer has been updated with new tags. Please try the tests Uses the tags:
    <source:write/>
      <source:insert/>
      	<source:path/>
      	<source:source/>
      	<source:replace/>
      	<source:reinsert/>
      	<source:fragment/>
    in the namespace xmlns:source="http://apache.org/cocoon/source/1.0".
    The contents of the <source:fragment/> tag are written to the specified WriteableSource when the document containing it is transformed by SourceWritingTransformer. Thankfully, FileSource is no longer the only Source that currently implements WritableSource; there are implementations of WebDAV and Apache Slide WritableSources in the scratchpad. Hopefully further WriteableSource implementations (XMLDB, CVS, Email, SQL, etc.) will be appear in the future. Definition:
       <map:transformer name="tofile" src="org.apache.cocoon.transformation.SourceWritingTransformer">
         <map:parameter name="serializer" value="xml"/>  <!-- this is the default Serializer (if your Source needs one, like for instance FileSource) -->
       </map:transformer/>
       
    Invocation:
       <map:transform type="tofile">
         <map:parameter name="serializer" value="xml"/>   <!-- you can optionally override the serializer here -->
       </map:transform>
       
    The Tags:
       <source:write create="[true]|false"> - replaces the entire content of an existing asset, if @create is 'true' (default), a new asset will be created if one does not already exist.
           <source:source>The System ID of the asset to be written to</source:source> - eg: "docs/blah.xml" or "context://blah.xml" etc.
           <source:path>[Optional] XPath to specify how your content is wrapped</source:path> - eg: "doc" (your content is placed inside a <doc/> root tag). NOTE: if this value is omitted, your content MUST have only ONE top-level node.
           <source:fragment>The XML Fragment to be written</source:fragment> - eg: "<foo><bar id="dogcow"/></foo>" or "<foo/><bar><dogcow/><bar/>" etc. NOTE: the second example type, can only be used when the <source:path/> tag has been specified.
       <source:write>
       
       <source:insert create="[true]|false" overwrite="[true]|false"> - inserts content into an existing asset, if @create is 'true' (default), a new asset will be created if one does not already exist. If @overwrite is set to 'true' the data is only inserted if the node specified by the 'replacePath' does not exists.
           <source:source>The System ID of the asset to be written to</source:source> - eg: "docs/blah.xml" or "context://blah.xml" etc.
           <source:path>XPath specifying the node into which the content is inserted</source:path> - eg: "doc" (your content is appended as the last child of the <doc/> root tag), or "doc/section[3]". NOTE: this tag is required in <source:insert/> unlike <source:write/> where it is optional.
           <source:replace>[Optional] XPath (relative to <source:path/>) to the node that is replaced by your new content</source:replace> - eg: "foo/bar/dogcow/@status='cut'" (is equivalent to this in XSLT: select="foo[bar/dogcow/@status='cut']").
           <source:reinsert>[Optional] The XPath (relative to <source:replace/>) to backup the overwritten node to</source:reinsert> - eg: "foo/versions" or "/doc/versions/foo". NOTE: If specified and a node is replaced, all children of this replaced node will be reinserted at the given path.
           <source:fragment>The XML Fragment to be written</source:fragment> - eg: "<foo><bar id="dogcow"/></foo>" or "<foo/><bar><dogcow/><bar/>" etc. 
       <source:insert>
       
    Input XML document example (write):
       <page>
         ...
         <source:write xmlns:source="http://apache.org/cocoon/source/1.0">
           <source:source>context://doc/editable/my.xml</source:source>      
           <source:fragment><page>
             <title>Hello World</title>
             <content>
               <p>This is my first paragraph.</p>
             </content>
           </page></source:fragment>
         </source:write>
         ...
       </page>
       
    Input XML document example (insert at end):
       <page>
         ...
         <source:insert xmlns:source="http://apache.org/cocoon/source/1.0">
           <source:source>context://doc/editable/my.xml</source:source>      
           <source:path>page/content</source:path>      
           <source:fragment>
             <p>This paragraph gets <emp>inserted</emp>.</p>
             <p>With this one, at the end of the content.</p>
           </source:fragment>
         </source:insert>
         ...
       </page>
       
    Input XML document example (insert at beginning):
       <page>
         ...
         <source:insert>
           <source:source>context://doc/editable/my.xml</source:source>
           <source:path>page</source:path>
           <source:replace>content</source:replace>
           <source:reinsert>content</source:reinsert>
           <source:fragment>
             <content>
               <p>This new paragraph gets inserted <emp>before</emp> the other ones.</p>
             </content>
           </source:fragment>
          <source:insert>
         ...
       </page>
       
    Input XML document example (replace):
       <page>
         ...
         <source:insert xmlns:source="http://apache.org/cocoon/source/1.0">
           <source:source>context://doc/editable/my.xml"</source:source>      
           <source:path>page/content</source:path>      
           <source:replace>p[1]</source:replace>      
           <source:fragment>
             <p>This paragraph <emp>replaces</emp> the first paragraph.</p>
           </source:fragment>
         </source:insert>
         ...
       </page>
       
    Output XML document example:
       <page>
         ...
         <sourceResult>
           <action>new|overwritten|none</action>
           <behaviour>write|insert<behaviour>
           <execution>success|failure</execution>
           <serializer>xml</serializer>
           <source>file:/source/specific/path/to/context/doc/editable/my.xml</source>
         </sourceResult>
         ...
       </page>
       
    The XPath specification is very complicated. So here is an example for the sitemap:
       <page xmlns:source="http://apache.org/cocoon/source/1.0">
         ...
       <source:insert>
         <source:source>sitemap.xmap</source:source>
         <source:path>/*[namespace-uri()="http://apache.org/cocoon/sitemap/1.0" and local-name()="sitemap"]/*[namespace-uri()="http://apache.org/cocoon/sitemap/1.0" and local-name()="components"]/*[namespace-uri()="http://apache.org/cocoon/sitemap/1.0" and local-name()="generators"]</source:path>
         <source:fragment>
      	  	<generator name="file" xmln="http://apache.org/cocoon/sitemap/1.0">
      			<test/>
      		</generator>
         </source:fragment>
         <source:replace>*[namespace-uri()="http://apache.org/cocoon/sitemap/1.0" and local-name()="generator" and attribute::name="file"]</source:replace>
       </source:insert>
         ...
       </page>
       
    This insert replaces (if it exists) the file generator definition with a new one. As the sitemap uses namespaces the XPath for the generator is rather complicated. Due to this it is necessary that the node specified by path exists if namespaces are used! Otherwise a node with the name * would be created... The create attribute of insert. If this is set to true (default is true), the file is created if it does not exists. If it is set to false, it is not created, making insert a real insert. create is only usable for files! In addition the overwrite attribute is used to check if replacing is allowed. If overwrite is true (the default) the node is replaced. If it is false the node is not inserted if the replace node is available. [JQ] - the way I understand this, looking at the code:
       if 'replace' is not specified, your 'fragment' is appended as a child of 'path'.
       if 'replace' is specified and it exists and 'overwrite' is true, your 'fragment' is inserted in 'path', before 'replace' and then 'replace' is deleted.
       if 'replace' is specified and it exists and 'overwrite' is false, no action occurs.
       if 'replace' is specified and it does not exist and 'overwrite' is true, your 'fragment' is appended as a child of 'path'.
       if 'replace' is specified and it does not exist and 'overwrite' is false, your 'fragment' is appended as a child of 'path'.
       if 'reinsert' is specified and it does not exist, no action occurs.
      
    The <source:reinsert> option can be used to reinsert a replaced node at a given path in the new fragment. Known Problems: Improper namespace handling. Namespace declarations are not copied to the Source, resulting in invalid XML. I cannot get the 'insert before' example working, which uses the <source:reinsert/> tag. Warning: It is not known how robust this transformer is under even moderate load, especially when it comes to more than one person modifying the same file at the same time.
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/docs/tests.xml Index: tests.xml =================================================================== SourceWritingTransformer Test Suite NB: SourceWritingTransformer has replaced FileWritingTransformer. Tests: Please run these tests and report any problems. Test 1: Test 1: the basic source:write test, makes Result 1. Test 2: Test 2: the source:write namespace test, makes Result 2, with the XLink namespace used inside. Known to fail (the written file is unparseable, because the namespace declaration is missing). Test 3: Test 3: the source:write new folder test, makes Result 3, in a new folder. Test 4: Test 4: the source:write XInclude test, makes Result 4, having XIncluded the content earlier in the pipeline. Test 5: Test 5: the source:write XSLT test, a StyleSheet makes Result 5, from parts of Test 5. Test 6: Test 6: the source:write read/write test, this is the great news, it was not expected to work, but it does!! This test first reads a file, modifies it then writes it back to the same place. Thanks to Olivier Rossel for contributing this. Test 7: Test 7: the source:insert after test, inserts a paragraph after the existing one in Result 7. Test 8: Test 8: source:insert before test, this test attempts to insert a paragraph before existing ones using source:reinsert, it currently fails, either because I am using it wrong or the code does not work properly. Test 9: Test 9: source:insert replace test, similar to test 6, it updates the contents of a single tag, but this time it inserts, not overwrites. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/docs/welcome.xml Index: welcome.xml =================================================================== Experimental File Editing Pipelines Please try the tests Please try out the demo file editor <slash-edit/> This suite uses the SourceWritingTransformer 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/alpha-config.xml Index: alpha-config.xml =================================================================== Make a new Page Edit a Page Save Results View a Page Directory Listing Page Preview Error Making a new File at Editing the File at Results of saving a file at Viewing the File at Directory Listing of Editor Preview of An Error has occurred Please edit the XML, then click the 'Make New File' button above Please edit the XML, then click the 'Save My Changes' button above Thanks for using <slash-edit/> This is the editor-view of your file, internal links are not likely to work correctly. Please choose a file to view in the editor Please confirm your changes, or fix your mistakes new(alpha) get(alpha) put(alpha) see(alpha) dir(alpha) pre(alpha) Parent .. new.xml 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/bravo-config.xml Index: bravo-config.xml =================================================================== Make a new Document Edit a Document Save Results View a Document Directory Listing Document Preview Error Making a new Document at Editing the Document at Results of saving a Document at Viewing the Document at Directory Listing of Editor Preview of An Error has occurred Please edit the fields, then click the 'Make New Document' button above Please edit the fields, then click the 'Save My Changes' button above Thanks for using <slash-edit/> This is the editor-view of your Document, internal links are not likely to work correctly. Please choose a Document to view in the editor Please confirm your changes new(bravo) get(bravo) put(bravo) see(bravo) dir(bravo) pre(bravo) Parent .. new.xml 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/schematron-page.xml Index: schematron-page.xml =================================================================== Schema for <slash-edit/> There should be a title tag. There only should be one title tag. There should be one content tag. There only should be one content tag. The title should be at least 4 characters. The title should be less than 40 characters. Your title is a bit boring! ;-) There should be at least one para tag. Oh do try and make your content a little more interesting! ;-). 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/slash-edit.css Index: slash-edit.css =================================================================== .title { text-align: center; font-size: 18px; font-weight: bold; font-family: sans-serif,Arial,Tahoma; color: black; background: white; border-color: black; border-width: 10px; } .main { border: 1px solid #0086B2; padding: 0px; margin: 6px; min-width: 630px; } .head { border-bottom: #0086B2; border-width: 0 0 1px 0; border-style: none none solid none; padding: 6px 6px 3px 6px; } .block { padding: 6px; } .confirm { width: 40%; margin-left: 50%; padding: 6px; } .content { border: 1px solid #0086B2; padding: 6px; margin: 1px; } tr { padding: 2px 6px 2px 6px; } .col1 { font-weight: bold; } .error .col1 { padding: 2px 20px 2px 6px; } .error .col2 { color:#BB0000; padding: 2px 20px 2px 6px; } .field { } .notify { font-size: 15px; text-align: left; } .tools { text-align: right; } .tool { padding: 6px; } .notes { font-size: 12px; font-weight: bold; color: white; background: #0086B2; text-align: left; padding: 6px 6px 3px 6px; } .foot { text-align: center; font-size: 12px; margin-top: 50px; } .hspace { margin: 30px; } #left { float: left; } #right { float: right; } #center { text-align: center; } #row { background: #EEFFFF; } .failure { font-weight: bold; color: #BB0000; } .warning { font-weight: bold; color: #BB0000; } .success { font-weight: bold; color: green; } .tab { font-size: 12px; font-weight: bold; color: white; background: #0086B2; padding: 4px 4px 2px 4px; border: 0px solid #0086B2; margin: 1px; } .tab a { text-decoration: none; color: white; } .tab a:visited { text-decoration: none; color: white; } .tab a:link { text-decoration: none; color: white; } .tab a:hover { text-decoration: underline; color: red; } a { text-decoration: none; } a:hover { text-decoration: underline; color: red; } body { font-size: 12px; font-family: sans-serif,Arial,Tahoma; color: black; background: white; } form { font-size: 12px; } textarea { background-color: #EEFFFF; font-size: 12px; font-family: geneva,arial,sans-serif; border-color: #0086B2; border-width: 1px; padding-left: 2px; } textarea.hidden { display: none; } input { background-color: #EEFFFF; font-size: 12px; font-family: geneva,arial,sans-serif; border-color: #0086B2; border-width: 1px; padding-left: 2px; } input.submit { background-color: #0086B2; font-size: 12px; font-family: geneva,arial,sans-serif; border-color: black; border-width: 1px; padding: 2px 6px; font-weight: bold; color: white; } input.button { background-color: #BB0000; font-size: 12px; font-family: geneva,arial,sans-serif; border-color: black; border-width: 1px; padding: 2px 6px; font-weight: bold; color: white; } 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/template.xml Index: template.xml =================================================================== - please write your title here - - you can put in any number of paragraphs - 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/docs/welcome.xml Index: welcome.xml =================================================================== <slash-edit/> How to use <slash-edit/> Top right you wil see some icons, this is <slash-edit/>'s toolbar. The icons look like this: Gives you a Directory Listing of your current directory inside your project's 'docs' directory. Gives you a form, made from a template, for you to make a new file in the current directory. Gives you a form to edit this file. See this file in the editor, useful for proof reading etc. There is no Delete function available, though you can overwrite files (no questions asked!). If you need to make a new directory, add it's name to the path field when you go to save a file. Sample Editors Alpha Editor - Uses the StreamGenerator to parse the Request, allowing you to edit the entire source XML as tags. No XML validation is available, if your XML is not well-formed, partial XML overwites the original! Bravo Editor - Uses the RequestGenerator and XSLT to dissassemble a very simple doctype into seperate fields that can contain no XML. <para/> tags in the source are converted to double line breaks in the form, then converted back to <para/> tags again on submit. <br/> tags are converted to and from single line breaks, inside the paragraphs. Because of this simplistic approach, this editor is unable to properly edit most of the files already in the docs directory because they use nested <para/> and other tags. Nested paragraphs would become un-nested, other tags would be converted to Entities. Please make a new file first, when you try out this editor. To make use of it in your project, I envisage the following: You add this to your project sitemap:
      <map:match pattern="edit**">
       <map:mount uri-prefix="edit" src="editor.xmap" check-reload="yes"/>
      </map:match>
      			
    You copy to the root of your project (where the sitemap is) the following (from cocoon/samples/editor/) :
       editor.xmap - the sitemap for the editor
    editor - a directory of the editor's files
    You make adjustments to the editor.xmap incase your project's files do not reside in 'docs'. You make any necessary adjustments to the template and schema in editor/docs to cope with the structure of the documents you use in your project (the samples use cocoon's 'simple-page' style). You make any necessary adjustments to the stylesheets in editor/stylesheets to cope with the structure of the documents you use in your project (the samples use cocoon's 'simple-page' style). You make any stylistic adjustments required to how the editors look. You add an appropriate authentication mechanism to protect anything inside '/edit'. That's the plan, anyway!
    Schema Validation <slash-edit/> now uses Schematron to validate your XML. Schematron allows you to write a simple xml file describing a set of rules your document should follow, and messages to send to the user when it does'nt. This document gets transformed by Schematron's XSLT files into an XSLT that does the actual validation on your document. This process is handled dynamically by an internal pipeline, and gets cached appropriately. When an error in validation occurs, <slash-edit/> now sends you back a form with some error messages, to try again. It still needs a lot of cleaning up though! Many thanks to Ivelin Ivanov for his assistance in getting this working.
    Components Used:
      SourceWritingTransformerSends part of the SAX stream to a WriteableSource
    DirectoryGeneratorGenerates a directory listing
    FileGeneratorGenerates a SAX stream from a file
    StreamGeneratorGenerates XML by parsing a named form field in the Request
    RequestGeneratorGenerates XMLfrom the form fields in the Request, it does not Parse, so fields cannot contain XML.
    commands:
      diryour-project/edit/dir(sub-editor)/path/to/directory/gives you a directory listing
    seeyour-project/edit/see(sub-editor)/path/to/filelets you see your page within the editor (it is not going to look the same, outside the context of your project and links are unlikely to work)
    getyour-project/edit/get(sub-editor)/path/to/fileconverts the file into an HTML Form for editing
    newyour-project/edit/new(sub-editor)/path/to/filegives you a Form made from a template to make a new file at that location
    putyour-project/edit/put(sub-editor)receives a Form, writing the contents back to File
    preyour-project/edit/pre(sub-editor)receives a Form, validates the instance, returns a form and a view of the data for you to confirm the modification
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/images/dir.gif <> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/images/file.gif <> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/images/get.gif <> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/images/new.gif <> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/images/see.gif <> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/dir2editor.xsl Index: dir2editor.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor-alpha-components.xsl Index: editor-alpha-components.xsl ===================================================================
    Alpha Editor
    File content
    Save as:
    Editor Preview
    Confirm
    Are you sure you want to save these changes?
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor-bravo-components.xsl Index: editor-bravo-components.xsl ===================================================================
    Bravo Editor
    Title
    Body
    Save as
    Editor Preview
    Confirm
    Are you sure you want to save these changes?
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor-components.xsl Index: editor-components.xsl ===================================================================
    Editor View

    row Directory row
    Schematron Validation
    failure success
    Writing to Source
    Result
    Behaviour
    Message
    Source
    Action None taken New document created Existing document overwritten Unknown
    Serializer
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor-page2html.xsl Index: editor-page2html.xsl =================================================================== <xsl:value-of select="$config/@title"/> - <xsl:value-of select="$config/title[@behaviour = $behaviour]"/> - <xsl:value-of select="$target"/>
    - site editor demo
    :

    Houston, we have a problem.
    <!-- jeremy at apache dot org -->

    Copyright © 1999-2002 The Apache Software Foundation.
    All rights reserved.
    javascript:exit(' ');
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor-utils.xsl Index: editor-utils.xsl =================================================================== error true false / / 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/editor2writer.xsl Index: editor2writer.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/file2editor.xsl Index: file2editor.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/generation-utils.xsl Index: generation-utils.xsl ===================================================================
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/request2editor.xsl Index: request2editor.xsl =================================================================== <xsl:value-of select="request:request/request:requestParameters/request:parameter[@name = 'title']/request:value"/> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/schematron-extensions.xsl Index: schematron-extensions.xsl =================================================================== / @ [ ] 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/schematron-validator2xsl.xsl Index: schematron-validator2xsl.xsl =================================================================== xml /editor/instance/* not( ) not( ) #ALL 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/schematron-wrappers.xsl Index: schematron-wrappers.xsl =================================================================== /editor/instance/

      Pattern: Documentation: see here
    Diagnostics:
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/simple-page2html.xsl Index: simple-page2html.xsl =================================================================== <xsl:value-of select="title"/>

      - site editor demo

    Welcome to <slash-edit/>
    Thanks for trying <slash-edit/>

    Copyright © 1999-2002 The Apache Software Foundation.
    All rights reserved.

    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/stream2editor.xsl Index: stream2editor.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor/stylesheets/validationFilter.xsl Index: validationFilter.xsl =================================================================== get 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/stylesheets/simple-page2html.xsl Index: simple-page2html.xsl =================================================================== <xsl:value-of select="title"/>

    ../../../view-source?filename=samples/editor/ source

    Behaviour
    Result
    Message
    Source
    Action None taken New file created Existing file overwritten Unknown
    Serializer
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/include-me.xml Index: include-me.xml =================================================================== Include me in Test Result 4 This is an external file that is to be XIncluded by 'test4' to make a new document. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/make-page.xsl Index: make-page.xsl =================================================================== tests/result5.xml Result from - <xsl:value-of select="/page/title"/> This file was assembled by XSLT from elements in test5 Here are some paragraphs copied from there: 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/result7.xml Index: result7.xml =================================================================== SourceWritingTransformer Test 7 This is the original paragraph 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/result8.xml Index: result8.xml =================================================================== SourceWritingTransformer Test 8 This is the original paragraph 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test1.xml Index: test1.xml =================================================================== SourceWritingTransformer Test Page 1 Test: Basic This test should have written a file called result1.xml, in the same directory as this. The file's content should come from the xml below. The XML is:
      <source:write>
      	<source:source>tests/result1.xml</source:source>
      	<source:fragment><page>
      	<title>SourceWritingTransformer Test Result 1</title>
      	<content>
      		<para>Congratulations!</para>
      	</content>
      </page></source:fragment>
      </source:write>
      			
    tests/result1.xml SourceWritingTransformer Test Result 1 Congratulations! Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test2.xml Index: test2.xml =================================================================== SourceWritingTransformer Test Page 2 Test: Namespace This test should have written a file called result2.xml, in the same directory as this. The file's content should come from the xml below. The XML is:
      <source:write src="">
      	<source:source>tests/result2.xml</source:source>
      	<source:fragment><page xmlns:xl="http://www.w3.org/1999/xlink">
      	<title>SourceWritingTransformer Test Result 2</title>
      	<content>
      		<para>Congratulations!</para>
      		<para><link xl:to="test/2">I am in the XLink NameSpace</link></para>
      	</content>
      </page></source:fragment>
      </source:write>
      			
    The namespace is: http://www.w3.org/1999/xlink tests/result2.xml SourceWritingTransformer Test Result 2 Congratulations! I am in the XLink NameSpace Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test3.xml Index: test3.xml =================================================================== SourceWritingTransformer Test Page 3!!!!! Test: New Folder Test This test should have written a file called result3.xml, in a directory that did not originally exist. The file's content should come from the xml below. The XML is:
      <source:write xmlns:source="http://apache.org/cocoon/source/1.0">
      	<source:source>tests/newfolder/result3.xml</source:source>
      	<source:fragment><page>
      	<title>SourceWritingTransformer Test Result 3</title>
      	<content>
      		<para>Congratulations!</para>
      	</content>
      </page></source:fragment>
      </source:write>
      			
    tests/newfolder/result3.xml SourceWritingTransformer Test Result 3 Congratulations! Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test4.xml Index: test4.xml =================================================================== SourceWritingTransformer Test Page 4 Test: XInclude Test This test should have written a file called result4.xml, with the contents coming from the file include-me.xml. The file's content is setup from the xml below. The XML is:
      <source:write>
      	<source:source>tests/result4.xml</source:source>
      	<source:fragment><ci:include src="tests/include.xml"/></source:fragment>
      </source:write>
      			
    tests/result4.xml Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test5.xml Index: test5.xml =================================================================== FileWritingTransformer Test Page 5 Test: XSLT Test This test should have written a file called result5.xml, with the contents being generated by a StyleSheet. This also tests setting the serializer from the invocation of FileWritingTransformer in the SiteMap. Anyway, the big issue here is that it is tricky to write XSL that gives you a clean XML indentation in your file. You can probably see how I have not quite got it right yet ;) The file's content is setup from the xml below. The XML is:
      			<make-page/>
      			
    Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test7.xml Index: test7.xml =================================================================== SourceWritingTransformer Test Page 7 Test: Insert After This test should have written a file called result7.xml, in the same directory as this. The file's content should come from the xml below, being inserted after the original. The XML is:
      <source:insert>
      	<source:path>page/content</source:path>
      	<source:source>tests/result7.xml</source:source>
      	<source:fragment><para>Congratulations!</para></source:fragment>
      </source:insert>
      			
    page/content tests/result7.xml Congratulations! Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test8.xml Index: test8.xml =================================================================== SourceWritingTransformer Test Page 8 Test: Insert Before This test should have written a file called result8.xml, in the same directory as this. The file's content should come from the xml below. The paragraph should be inserted before the others. The XML is:
        <source:insert>
          <source:source>tests/result8.xml</source:source>
          <source:path>page</source:path>
          <source:replace>content</source:replace>
          <source:reinsert>content</source:reinsert>
          <source:fragment>
            <content>
              <p>This new paragraph gets inserted <emp>before</emp> the other ones.</p>
            </content>
          </source:fragment>
        </source:insert>
      			
    tests/result8.xml page content content

    This new paragraph gets inserted before the other ones.

    Have a look!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test6/inc.xsl Index: inc.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test6/input.xml Index: input.xml =================================================================== SourceWritingTransformer Test Page 6 Test: Insert Replace This test replicates test 9, but does a write, using xslt to update the document. This test should have incremented a counter in this file "tests/test6/input.xml". The counter is: 0 Try again! 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test6/prepareWrite.xsl Index: prepareWrite.xsl =================================================================== tests/test6/input.xml 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test9/inc.xsl Index: inc.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test9/input.xml Index: input.xml =================================================================== SourceWritingTransformer Test Page 9 Test: Insert Replace This test replicates test 6, but this time doing an insert instead of a write. This test should have incremented a counter in this file "tests/test9/input.xml". The counter is: 0
      <source:insert>
      	<source:source>tests/test9/input.xml</source:source>
      	<source:path>page/content/para[4]</source:path>
      	<source:replace>counter</source:replace>
      	<source:fragment><counter>n</counter></source:fragment>
      </source:insert>
      			
    Try again!
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/tests/test9/prepareWrite.xsl Index: prepareWrite.xsl =================================================================== tests/test9/input.xml page/content/para[4] counter 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/README.txt Index: README.txt =================================================================== To get started, read the How-To for this component: http://localhost:8080/cocoon/howto/howto-paginator-transformer.html For those who don't like to read docs: Make sure you have a version 2.0.3 or greater of Cocoon. The PaginatorTransformer component source code is located in the scratchpad area. Therefore, you need to use the following command to build a deployable cocoon.war which includes the scratchpad libraries. ./build.[ sh | bat ] -Dinclude.scratchpad.libs=yes webapp During the build process, the necessary configuration details for the PaginatorTransformer component are copied to cocoon.xconf of cocoon.war. This means that you don't need to manually configure cocoon.xconf. To get going, access: http://localhost:8080/cocoon/samples/paginator/list(1) Have fun! 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/sitemap.xmap Index: sitemap.xmap =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/content/list.xml Index: list.xml =================================================================== This is item 1 This is item 2 This is item 3 This is item 4 This is item 5 This is item 6 This is item 7 This is item 8 This is item 9 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/pagesheets/list.pagesheet Index: list.pagesheet =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/pagesheets/pagesheet.dtd Index: pagesheet.dtd =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/stylesheets/list2html.xsl Index: list2html.xsl =================================================================== Complete List

    Complete List

  • 1.1 xml-cocoon2/src/scratchpad/webapp/samples/paginator/stylesheets/pagedlist2html.xsl Index: pagedlist2html.xsl =================================================================== ]> Paged List

    Paged List

    single page version
  •   « prev [page of ] next »  
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/README Index: README =================================================================== The Precept Stuff ----------------- This is all still far from being ready for prime time but in order to share efforts I think it makes sense to have it in scratchpad. I'll give a short indroduction about the idea, the terms I am using, what is still missing, what should change and how I see its future. Installation ------------ Add the roles and xconf snippet to you installation, set your precptor path (it's not yet resolved) mount the sitemap and access the url "app/demo.html" relative to the sitemap mount. Introduction ------------ Form processing is always about collecting data of a specific structure. When this data selection process is finished the data will be used for some kind of purpose. Seeing this from a more concrete XMLish point of view one could say we are building some kind of XML instance which needs to conform to a schema description. That's exactly the major goal of this approach. The model --------- At the start of the flow we create some kind of instance that can hold our values. This instance will be held inside the users session until the end of form processing. In order to specify the structure and validation of the form data we need some kind of schema. Since "schema" is widely used as the short form for the w3.org XML Schema language I have chosen to use a different term that means schemas in general (XML Schema, relax-ng, etc.): "preceptors". In the first place the preceptor defines the structure of the instance but also holds information about the value constraints. That's our model. The view -------- Especially for multipage forms (sometimes called "wizards") it is quite obvious that only parts of an instance are supposed to be displayed. [-----------------instance---------------] [---view1---][----view2----][----view3---] So we have different views of the instance. There are 2 different ways of achieving this. (see webapp example1 and example2 for more details) The controller -------------- The controller needs to populate request parameters into the instance and depending on the validation result select the correct following view. At the beginning I was quite optimistic this could all happen automagically - now I know better. I experienced two problems that are not to solve automagically: 1. checkboxes - Arrggh! This is the most stupid behavior I have ever seen... Anyway we have to deal with it. The only really working solution is that the controller "knows" when a checkbox value is supposed to be in the request. Otherwise you cannot turn off your checkboxes because a turned off checkbox will not appear in the request. 2. partial validation - It's not true that you always want to validate a complete view. Never thought this would be necessary until some people showed me a real world example. The current approach is to bind methods to the form submit buttons. So you can define explicitly what should happen (populated, validated, which view is supposed to be shown) on a specific button. So you are free to do whatever you want on a button click... This usually will happen inside an multiaction (maybe also within Ovidiu's schecoon?) ... public Map introspection(Redirector redirector, Sou... getLogger().debug("start of flow"); // start of flow create session Session session = createSession(objectModel); // create instance Instance instance = createInstance("feedback"); // save instance into session session.setAttribute("form-feedback",instance); // select first view return(page(VIEW1)); } ... public Map doNext(Redirector redirector, Sou... getLogger().debug("populating"); // populate a set of data into the instace populate(objectModel, "form-feedback", SET_INSTALLATION ); // check if there are errors in those fields List errors = validate(objectModel, "form-feedback", SET_INSTALLATION ); if(errors != null) { // errors - go back to last view getLogger().debug("some constraints FAILED"); return (page(VIEW1)); } else { // errors - go to next view getLogger().debug("all constraints are ok"); return (page(VIEW2)); } } ... The Instance ------------ You can drop in any instance implementation that conforms to the following interface: public interface Instance extends Component { public void setValue(String xpath, Object value); public void setValue(String xpath, Object value, Context context); public Object getValue(String xpath); public List validate(String xpath, Context context); public List validate(Context context); public void setPreceptor( Preceptor preceptor ); public Preceptor getPreceptor(); public void toSAX( ContentHandler handler, boolean withConstraints); public long getLastModified(); } Note: I removed the Exceptions for this README. Please use the Instance.java as reference. Currently I have written a (very) simple dom implementation. (without namespace support or any other features. More a simple tree. But should be quite fast) And the first step towards a BeanInstance. (Validation is missing and needs some more discussion) ... somwhere.my.bean ... The Preceptor ------------- A preceptor is usually some kind of wrapper around or interface to one of the well known validators. If you write a preceptor e.g. for XML Schema you can easily drop it in and design your form within an XSD. public interface Preceptor extends Component { public List getConstraitsFor( String xpath ); public boolean isValidNode( String xpath ); public void buildInstance( Instance instance ); } Note: I removed the Exceptions for this README. Please use the Instance.java as reference. The mapping between the instance and the preceptor looks like this: The Constraint -------------- A constraint restricts valid values of nodes inside the instance for a given context. If we don't want to write our own constraints (and this should be the goal) we need to wrap existing ones into the Constraint Interface. public interface Constraint { public boolean isSatisfiedBy( Object value, Context context ); public String getId(); public String getType(); public void toSAX(ContentHandler handler) throws SAXException; } TODOs ----- * make the easyrelax PreceptorBuilder use the parser component * put the easyrelax ConstraintFactory under CM control * use the real configuration values in the easyrelax constraints * implement the getLastModified in the simple dom instance * use the resolver to lookup the mapping for the bean instance * implement the validation for the bean instance * implement the getLastModified in the bean instance * maybe pass the validation result as request attribute to the instance transformer * discuss the selectMany instance representation * discuss schematron integration * implement the following tags in the instance transformer The future ---------- 1) What I like to see in the future is a way to define simple form controllers not in java but in XML. This should be quite easy to achieve by writing an action taking an XML desciptor as configuration. 2) A better multiaction integration in the sitemap. So those ugly action-set definitions go away. 3) A tight integration with Schecoon 4) Talk with with guys from Xerces2 (xsd) about the Preceptor stuff. IIRC they are about to rewrite some of the validation stuff anyway. 5) Talk with the guys from Jing (relax-ng) about the Preceptor stuff. AFAICS they currently only have per document validation. 6) add a toJavaScript() method to the Constraint interface so we can even generate JavaScript validation from the Constraints 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/sitemap.xmap Index: sitemap.xmap =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/snippet.roles Index: snippet.roles =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/snippet.xconf Index: snippet.xconf =================================================================== somwhere.my.bean 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/README Index: README =================================================================== This example always inserts the full instance into the SAX stream and uses the different stylesheets to display only parts of it. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/error.xml Index: error.xml =================================================================== Sorry, submit failed 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/error.xsl Index: error.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/thanks.xml Index: thanks.xml =================================================================== Successfully submitted your data! 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/thanks.xsl Index: thanks.xsl =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view1.xml Index: view1.xml =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view1.xsl Index: view1.xsl ===================================================================
    Firstname
    Lastname
    Email
    Age
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view2.xml Index: view2.xml =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view2.xsl Index: view2.xsl ===================================================================
    Installation number
    Live URL
    Publish this URL
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view3.xml Index: view3.xml =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view3.xsl Index: view3.xsl ===================================================================
    os
    processor
    ram
    servlet engine
    java version
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view4.xml Index: view4.xml =================================================================== 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example1/view4.xsl Index: view4.xsl ===================================================================
    Firstname
    Lastname
    Email
    Age
    Installation number
    Live URL
    Please publish it as cocoon live-site example
    os
    processor
    ram
    servlet engine
    java version
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/README Index: README =================================================================== This example use a more cleaner approach. The views are defined in XML and the stylesheet only renders into the desired media. Inserting of instance data will happen from within a transformer. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/error.xml Index: error.xml =================================================================== Sorry, submit failed 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/i2html.xsl Index: i2html.xsl ===================================================================
    []
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/thanks.xml Index: thanks.xml =================================================================== Successfully submitted your data! 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/view1.xml Index: view1.xml =================================================================== Firstname Lastname Email Age Next 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/view2.xml Index: view2.xml =================================================================== Number of installations Live URL Publish Prev Next 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/view3.xml Index: view3.xml =================================================================== OS Processor RAM Servlet Engine Java Version Prev Next 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/example2/view4.xml Index: view4.xml =================================================================== Firstname Lastname Email Number of installations Live URL Publish OS Processor RAM Servlet Engine Java Version Prev Submit 1.1 xml-cocoon2/src/scratchpad/webapp/samples/precept/model/easyrelax.xml Index: easyrelax.xml =================================================================== ^[a-zA-Z0-9]+[a-zA-Z0-9-_.]*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$ Linux Windows 2000 Intel PowerPC Tomcat 4 Tomcat 3 Resin JDK 1.2.x JDK 1.3.x JDK 1.4.x 1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/README Index: README =================================================================== ==================================== Using Jakarta Slide with Cocoon ==================================== 1. Install the Web Application via in Tomcat ./build.sh -Dinclude.webapp.libs=yes -Dinstall.war=$TOMCAT_HOME/webapps -Dinclude.scratchpad.libs=yes install 2. Start Tomcat $TOMCAT_HOME/bin/catalina.sh run 3. Access the slide repository via Cocoon http://vernjava:8080/cocoon/samples/slide/browse/myrepository/ [OPTIONAL] 4. If you want an access via WebDAV copy the web.xml into WEB-INF/ This file includes the WebDAV Servlet from Slide. 5. Access WebDAV via MS WebFolders, Cadaver or what ever http://localhost:8080/cocoon/webdav/ Have fun, Stephan Michels Some things must be fixed: * The base directory for the content stores should be set, but don't know how. 1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/login-failed.html Index: login-failed.html =================================================================== Login failed

    Login failed!

    1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/login.html Index: login.html =================================================================== Login page
    Username:
    Password:
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/logout.html Index: logout.html =================================================================== Logout

    You are logged out!

    1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/rdf2html.xsl Index: rdf2html.xsl =================================================================== Jakarta Slide Collection
    Subject  
    Home Download
     
    Revision
    Branch Revision
     
    Properties
    Namespace Name Value
     
    ACL Info
    Subject Action Inheritable Deny
     
    Lock Info
    Subject Type Expiration Inheritable Exclusive
     
    Child Type Size Last Modified
     
    Jakarta Slide 1.0 + Apache Cocoon 2
      
    1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/sitemap.xmap Index: sitemap.xmap =================================================================== 1024 ASCII ASCII 1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/slide.xconf Index: slide.xconf =================================================================== org.hsqldb.jdbcDriver jdbc:hsqldb:slidestructure sa org.hsqldb.jdbcDriver jdbc:hsqldb:slidecontent sa /actions /actions/read /actions/write /actions/write /actions/manage /actions/manage /actions/manage /actions/write /actions/manage /actions/read /actions/read /actions/write /actions/write /actions/write /actions/read /actions/write /actions/write /actions/write /users guest /files true true slideroles.basic.RootRole slideroles.basic.UserRole slideroles.basic.GuestRole false root john 1.1 xml-cocoon2/src/scratchpad/webapp/samples/slide/web.xml Index: web.xml =================================================================== Cocoon2 Demo Demo application for Cocoon2 Cocoon2 Cocoon2 The main Cocoon2 servlet org.apache.cocoon.servlet.CocoonServlet configurations /WEB-INF/cocoon.xconf init-classloader false logkit-config /WEB-INF/logkit.xconf servlet-logger access cocoon-logger core log-level DEBUG allow-reload yes load-class org.hsqldb.jdbcDriver request-factory org.apache.cocoon.components.request.MultipartRequestFactoryImpl 1 WebDAV WebDAV The WebDAV servlet org.apache.slide.webdav.WebdavServlet scope /files Scope of the Slide namespace that should be exposed by this servlet. For example, if you want to expose only the /files collection via WebDAV, set this parameter to '/files'. In that case, any URLs of the form '/context-path/servlet-path/*' will be mapped to '/files/*' in the Slide namespace. The default value is an empty string. depth-limit 3 This init-parameter determines the depth limit for PROPFIND and other methods, to avoid performance hits on the server for requests with infinite depth. The default value is '3'. default-mime-type application/octet-stream The MIME type that should be used for resources of unknown type. For example, if a WebDAV client uploads a file (via PUT) without specifying the Content-Type header, the MIME type defined here will be used. The default value is 'application/octet-stream'. default-servlet false By default, the WebDAV servlet is mapped as default servlet of the web application context (the url-pattern in servlet-mapping is '/'). If you want to change that mapping so the servlet is no longer the default servlet, you must change this initialization parameter to indicate the situation to the servlet, by setting it to 'false'. The default value is 'true'. domain /WEB-INF/Domain.xml Path to the domain configuration file, relative to the path of the web application. The default is '/Domain.xml'. namespace myrepository Name of the Slide namespace that should be accessed by this servlet. If this parameter is provided, make sure the corresponding namespace is defined in the domain configuration file. Otherwise, the default namespace will be used, if one exists. directory-browsing false Use the 'directory-browsing' init-parameter to turn off generation of HTML index pages that enable browsing of collections. The default value is 'true'. debug 0 1 Cocoon2 / Cocoon2 *.jsp Cocoon2 *.html WebDAV /webdav/* css text/css DAV resource /webdav/* COPY DELETE GET HEAD LOCK MKCOL MOVE OPTIONS POST PROPFIND PROPPATCH PUT UNLOCK root guest user BASIC Slide DAV Server ---------------------------------------------------------------------- In case of troubles, e-mail: webmaster@xml.apache.org To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org For additional commands, e-mail: cocoon-cvs-help@xml.apache.org