<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XML Spy v3.5 NT (http://www.xmlspy.com)-->
<xsd:schema targetNamespace="http://jakarta.apache.org/log4j/" xmlns="http://jakarta.apache.org/log4j/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fg="http://www.FGolubov.com/XMLEditor">
	<xsd:complexType name="appender-refType">
		<xsd:attribute name="ref" type="xsd:IDREF" use="required">
			<xsd:annotation>
				<xsd:appinfo>
 					<fg:node-info exposed="true"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="levelType">
		<xsd:annotation>
			<xsd:appinfo>
				<fg:node-info exposed="true"/>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="class" type="xsd:string"/>
		<xsd:attribute name="value" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:appinfo>
 					<fg:node-info exposed="true"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:element name="configuration">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="renderer" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:attribute name="renderedClass" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:appinfo>
									<fg:node-info exposed="true"/>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:attribute>
						<xsd:attribute name="renderingClass" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:appinfo>
									<fg:node-info exposed="true"/>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="appender" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="errorHandler" minOccurs="0">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
										<xsd:element name="root-ref" minOccurs="0">
											<xsd:complexType/>
										</xsd:element>
										<xsd:element name="logger-ref" minOccurs="0" maxOccurs="unbounded">
											<xsd:complexType>
												<xsd:attribute name="ref" type="xsd:IDREF" use="required"/>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="appender-ref" type="appender-refType" minOccurs="0"/>
									</xsd:sequence>
									<xsd:attribute name="class" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:appinfo>
												<fg:node-info exposed="true"/>
											</xsd:appinfo>
										</xsd:annotation>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
							<xsd:element name="layout" minOccurs="0">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
									</xsd:sequence>
									<xsd:attribute name="class" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:appinfo>
												<fg:node-info exposed="true"/>
											</xsd:appinfo>
										</xsd:annotation>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="filter" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
									</xsd:sequence>
									<xsd:attribute name="class" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:appinfo>
												<fg:node-info exposed="true"/>
											</xsd:appinfo>
										</xsd:annotation>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="appender-ref" type="appender-refType" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="name" type="xsd:ID" use="required">
							<xsd:annotation>
								<xsd:appinfo>
									<fg:node-info exposed="true"/>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:attribute>
						<xsd:attribute name="class" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:appinfo>
									<fg:node-info exposed="true"/>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:choice minOccurs="0" maxOccurs="unbounded">
					<xsd:element name="category">
						<xsd:annotation>
							<xsd:appinfo>
								<fg:node-info exposed="true"/>
							</xsd:appinfo>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
								<xsd:choice minOccurs="0">
									<xsd:element name="priority" type="priorityType"/>
									<xsd:element name="level" type="levelType"/>
								</xsd:choice>
								<xsd:element name="appender-ref" type="appender-refType" minOccurs="0" maxOccurs="unbounded"/>
							</xsd:sequence>
							<xsd:attribute name="class" type="xsd:string"/>
							<xsd:attribute name="name" type="xsd:string" use="required">
								<xsd:annotation>
									<xsd:appinfo>
										<fg:node-info exposed="true"/>
									</xsd:appinfo>
								</xsd:annotation>
							</xsd:attribute>
							<xsd:attribute name="additivity" default="true">
								<xsd:simpleType>
									<xsd:restriction base="xsd:NMTOKEN">
										<xsd:enumeration value="true"/>
										<xsd:enumeration value="false"/>
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:attribute>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="logger">
						<xsd:annotation>
							<xsd:appinfo>
								<fg:node-info exposed="true"/>
							</xsd:appinfo>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="level" type="levelType" minOccurs="0"/>
								<xsd:element name="appender-ref" type="appender-refType" minOccurs="0" maxOccurs="unbounded"/>
							</xsd:sequence>
							<xsd:attribute name="name" type="xsd:ID" use="required">
								<xsd:annotation>
									<xsd:appinfo>
 										<fg:node-info exposed="true"/>
									</xsd:appinfo>
								</xsd:annotation>
							</xsd:attribute>
							<xsd:attribute name="additivity" default="true">
								<xsd:simpleType>
									<xsd:restriction base="xsd:NMTOKEN">
										<xsd:enumeration value="true"/>
										<xsd:enumeration value="false"/>
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:attribute>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
				<xsd:element name="root" minOccurs="0">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
							<xsd:choice minOccurs="0">
								<xsd:element name="priority" type="priorityType"/>
								<xsd:element name="level" type="levelType"/>
							</xsd:choice>
							<xsd:element name="appender-ref" type="appender-refType" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="categoryFactory" minOccurs="0">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="class" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:appinfo>
									<fg:node-info exposed="true"/>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="threshold" default="null">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="all"/>
						<xsd:enumeration value="debug"/>
						<xsd:enumeration value="info"/>
						<xsd:enumeration value="warn"/>
						<xsd:enumeration value="error"/>
						<xsd:enumeration value="fatal"/>
						<xsd:enumeration value="off"/>
						<xsd:enumeration value="null"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="debug" default="null">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="true"/>
						<xsd:enumeration value="false"/>
						<xsd:enumeration value="null"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="paramType">
		<xsd:attribute name="name" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:appinfo>
					<fg:node-info exposed="true"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="value" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:appinfo>
					<fg:node-info exposed="true"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="priorityType">
		<xsd:annotation>
			<xsd:appinfo>
				<fg:node-info exposed="true"/>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="class" type="xsd:string"/>
		<xsd:attribute name="value" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:appinfo>
					<fg:node-info exposed="true"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
</xsd:schema>
