<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<root xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
	<Empty/>
	<ElementWithValue>value</ElementWithValue>
	<OneFixedValueChildNode><ChildNode>Test</ChildNode></OneFixedValueChildNode>	
	<WithChildGeneratedNode><ChildNode>dd</ChildNode></WithChildGeneratedNode>	
	<DynamicElement>01 styczeń 1979</DynamicElement>	
	<WithAttribute attribute="attr"/>
	<AttributeAndChildNode attribute="attr"><ChildNode>A</ChildNode></AttributeAndChildNode>
	<MixedContent attribute="attr">A<B/></MixedContent>
	<MixedContent2 attribute="attr">A<B/></MixedContent2>		
	<EmptyElementWithNamespace xmlns="http://cocoon.apache.org/kamal"/>
	<EmptyElementWithGeneratedNamespace xmlns="http://cocoon.apache.org/kamalbhatt"/>	
	<GeneratedElementWithGeneratedChild xmlns="http://cocoon.apache.org/kamalbhatt">
	  <GeneratedChild xmlns="http://cocoon.apache.org/kamal">Test</GeneratedChild>
	</GeneratedElementWithGeneratedChild>	
	<prefix:ElementWithNamespaceAndHardCodedPrefix xmlns:prefix="http://cocoon.apache.org/kamalbhatt"/>
	<kb:ElementWithNamespaceAndGeneratedPrefix xmlns:kb="http://cocoon.apache.org/kamalbhatt"/> 
</root>
