Skip to content

Instantly share code, notes, and snippets.

@kirandasika
Created September 18, 2015 15:38
Show Gist options
  • Save kirandasika/1510dcf8f412a2a7586f to your computer and use it in GitHub Desktop.
Save kirandasika/1510dcf8f412a2a7586f to your computer and use it in GitHub Desktop.
Intellisense for log4net in Visual Studio
  • Download the log4net schema from here
  • Add this .xsd to Visual Studio menu > XML > Schemas

Note that the XML menu item would be enabled only if an xml or a .config file is opened in the editor.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.01" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Copyright 2008 by Roger Knapp, Licensed under the Apache License, Version 2.0 -->
<xs:annotation>
<xs:documentation>
<![CDATA[
Author: Roger Knapp
Url: http://csharptest.net/downloads/schema/log4net.xsd
Proj: http://csharptest.net/downloads/projects/log4net.config.zip
Date: November 7th, 2008
Rev: 1.01
Usage: You only need to add the following to the log4net element:
<log4net
xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Preface:
Please be aware that though this xsd attempts to cover most of the usages you
will encounter with log4net configurations it is by no means complete. The
primary reason (excuse) for this is that the xml format used by log4net config
files does not conform to any real standard. This is both it's primary
weakness and it's strength. As such there are a few things you should know
about how log4net interprets your configuration before creating one.
Firstly most of the elements described in this document are really not needed.
This is due to the fact that a <param name='x' ...> can be used in place of
the element <x ...>. For instance, the following are equivalent:
<maximumFileSize value="1MB" />
<param name="maximumFileSize" value="1MB" />
So Why Use This Xsd?:
This xsd attempts to utilize the former convention and to declare as much as
possible for the benefit of auto-completion and sanity checking. However,
since most of the param names vary by the containing element's 'type' attribute
it is impossible to describe this correctly in xsd (at least to my knowledge).
So use this schema if you like and remember that there is life beyond it's
limited capability.
If you would like to contribute back to this schema you can send email to the
follow address (remove all the spaces and slashes): schema / @ / csharptest.net
Be sure to include the schema name "log4net.xsd" in the subject-line. If you
know someone on the log4net project please convince them to adopt a schema,
I don't care which one, just have one.
Legal:
Copyright 2008 by Roger Knapp
Licensed 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.
]]>
</xs:documentation>
<xs:appinfo source="http://logging.apache.org/log4net/release/manual/configuration.html" />
</xs:annotation>
<xs:element name="log4net" type="log4net">
<xs:key name="appenderNamesKey">
<xs:selector xpath="./appender" />
<xs:field xpath="@name" />
</xs:key>
<xs:keyref name="appenderExists" refer="appenderNamesKey">
<xs:selector xpath=".//appender-ref"/>
<xs:field xpath="@ref"/>
</xs:keyref>
</xs:element>
<xs:complexType name="log4net">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
<xs:element minOccurs="0" maxOccurs="1" name="logger" type="logger" />
<xs:element minOccurs="0" maxOccurs="1" name="renderer" type="renderer" />
<xs:element minOccurs="0" maxOccurs="1" name="root" type="root" />
<xs:element minOccurs="0" maxOccurs="1" name="appender" type="appender" />
</xs:choice>
</xs:sequence>
<xs:attribute default="false" name="debug" type="xs:boolean" />
<xs:attribute default="Merge" name="update" type="log4netUpdateAttribute" />
<xs:attribute default="ALL" name="threshold" type="log4netLevel" />
</xs:complexType>
<xs:complexType name="param">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="param" type="param" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
</xs:complexType>
<xs:complexType name="logger">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
<xs:element minOccurs="0" maxOccurs="1" name="level" type="level" />
<xs:element minOccurs="0" maxOccurs="1" name="appender-ref" type="appender_ref" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute default="true" name="additivity" type="xs:boolean" />
</xs:complexType>
<xs:complexType name="level">
<xs:attribute name="value" type="log4netLevel" use="required" />
</xs:complexType>
<xs:simpleType name="log4netLevel">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL" />
<xs:enumeration value="DEBUG" />
<xs:enumeration value="INFO" />
<xs:enumeration value="WARN" />
<xs:enumeration value="ERROR" />
<xs:enumeration value="FATAL" />
<xs:enumeration value="OFF" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="appender_ref">
<xs:attribute name="ref" type="xs:string" />
</xs:complexType>
<xs:complexType name="renderer">
<xs:attribute name="renderingClass" type="xs:string" />
<xs:attribute name="renderedClass" type="xs:string" />
</xs:complexType>
<xs:complexType name="root">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="appender-ref" type="appender_ref" />
<xs:element minOccurs="0" maxOccurs="1" name="level" type="level" />
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="appender">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="facility" type="facility" />
<xs:element minOccurs="0" maxOccurs="1" name="reconnectOnError" type="reconnectOnError" />
<xs:element minOccurs="0" maxOccurs="1" name="useTransactions" type="useTransactions" />
<xs:element minOccurs="0" maxOccurs="1" name="target" type="target" />
<xs:element minOccurs="0" maxOccurs="1" name="mapping" type="mapping" />
<xs:element minOccurs="0" maxOccurs="1" name="immediateFlush" type="immediateFlush" />
<xs:element minOccurs="0" maxOccurs="1" name="applicationName" type="applicationName" />
<xs:element minOccurs="0" maxOccurs="1" name="logName" type="logName" />
<xs:element minOccurs="0" maxOccurs="1" name="machineName" type="machineName" />
<xs:element minOccurs="0" maxOccurs="1" name="appendToFile" type="appendToFile" />
<xs:element minOccurs="0" maxOccurs="1" name="encoding" type="encoding" />
<xs:element minOccurs="0" maxOccurs="1" name="file" type="file" />
<xs:element minOccurs="0" maxOccurs="1" name="lockingModel" type="lockingModel" />
<xs:element minOccurs="0" maxOccurs="1" name="appender-ref" type="appender_ref" />
<xs:element minOccurs="0" maxOccurs="1" name="identity" type="identity" />
<xs:element minOccurs="0" maxOccurs="1" name="recipient" type="recipient" />
<xs:element minOccurs="0" maxOccurs="1" name="sender" type="sender" />
<xs:element minOccurs="0" maxOccurs="1" name="server" type="server" />
<xs:element minOccurs="0" maxOccurs="1" name="sink" type="sink" />
<xs:element minOccurs="0" maxOccurs="1" name="countDirection" type="countDirection" />
<xs:element minOccurs="0" maxOccurs="1" name="datePattern" type="datePattern" />
<xs:element minOccurs="0" maxOccurs="1" name="maxFileSize" type="maxFileSize" />
<xs:element minOccurs="0" maxOccurs="1" name="maximumFileSize" type="maximumFileSize" />
<xs:element minOccurs="0" maxOccurs="1" name="parameter" type="parameter" />
<xs:element minOccurs="0" maxOccurs="1" name="rollingStyle" type="rollingStyle" />
<xs:element minOccurs="0" maxOccurs="1" name="staticLogFileName" type="staticLogFileName" />
<xs:element minOccurs="0" maxOccurs="1" name="from" type="from" />
<xs:element minOccurs="0" maxOccurs="1" name="priority" type="priority" />
<xs:element minOccurs="0" maxOccurs="1" name="subject" type="subject" />
<xs:element minOccurs="0" maxOccurs="1" name="to" type="to" />
<xs:element minOccurs="0" maxOccurs="1" name="authentication" type="authentication" />
<xs:element minOccurs="0" maxOccurs="1" name="password" type="password" />
<xs:element minOccurs="0" maxOccurs="1" name="smtpHost" type="smtpHost" />
<xs:element minOccurs="0" maxOccurs="1" name="username" type="userName" />
<xs:element minOccurs="0" maxOccurs="1" name="port" type="port" />
<xs:element minOccurs="0" maxOccurs="1" name="pickupDir" type="pickupDir" />
<xs:element minOccurs="0" maxOccurs="1" name="localPort" type="localPort" />
<xs:element minOccurs="0" maxOccurs="1" name="remoteAddress" type="remoteAddress" />
<xs:element minOccurs="0" maxOccurs="1" name="remotePort" type="remotePort" />
<xs:element minOccurs="0" maxOccurs="1" name="maxSizeRollBackups" type="maxSizeRollBackups" />
<xs:element minOccurs="0" maxOccurs="1" name="filter" type="filter" />
<xs:element minOccurs="0" maxOccurs="1" name="layout" type="layout" />
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
<xs:element minOccurs="0" maxOccurs="1" name="securityContext" type="securityContext" />
<xs:element minOccurs="0" maxOccurs="1" name="bufferSize" type="bufferSize" />
<xs:element minOccurs="0" maxOccurs="1" name="threshold" type="threshold" />
<xs:element minOccurs="0" maxOccurs="1" name="lossy" type="lossy" />
<xs:element minOccurs="0" maxOccurs="1" name="evaluator" type="evaluator" />
<xs:element minOccurs="0" maxOccurs="1" name="commandText" type="commandText" />
<xs:element minOccurs="0" maxOccurs="1" name="commandType" type="commandType" />
<xs:element minOccurs="0" maxOccurs="1" name="connectionString" type="connectionString" />
<xs:element minOccurs="0" maxOccurs="1" name="connectionType" type="connectionType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="type" type="log4netAppenderTypes" use="required" />
</xs:complexType>
<xs:complexType name="facility">
<xs:attribute name="value" type="facilityTypes" use="required" />
</xs:complexType>
<xs:simpleType name="facilityTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Kernel" />
<xs:enumeration value="User" />
<xs:enumeration value="Mail" />
<xs:enumeration value="Daemons" />
<xs:enumeration value="Authorization" />
<xs:enumeration value="Syslog" />
<xs:enumeration value="Printer" />
<xs:enumeration value="News" />
<xs:enumeration value="Uucp" />
<xs:enumeration value="Clock" />
<xs:enumeration value="Authorization2" />
<xs:enumeration value="Ftp" />
<xs:enumeration value="Ntp" />
<xs:enumeration value="Audit" />
<xs:enumeration value="Alert" />
<xs:enumeration value="Clock2" />
<xs:enumeration value="Local0" />
<xs:enumeration value="Local1" />
<xs:enumeration value="Local2" />
<xs:enumeration value="Local3" />
<xs:enumeration value="Local4" />
<xs:enumeration value="Local5" />
<xs:enumeration value="Local6" />
<xs:enumeration value="Local7" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="reconnectOnError">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="useTransactions">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="target">
<xs:attribute name="value" type="consoleTargetTypes" use="required" />
</xs:complexType>
<xs:simpleType name="consoleTargetTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Console.Out" />
<xs:enumeration value="Console.Error" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="mapping">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="foreColor" type="foreColor" />
<xs:element minOccurs="0" maxOccurs="1" name="eventLogEntryType" type="eventLogEntryType" />
<xs:element minOccurs="0" maxOccurs="1" name="severity" type="severity" />
<xs:element minOccurs="0" maxOccurs="1" name="level" type="level" />
<xs:element minOccurs="0" maxOccurs="1" name="attributes" type="attributes" />
<xs:element minOccurs="0" maxOccurs="1" name="backColor" type="backColor" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="foreColor">
<xs:attribute name="value" type="allColorTypes" use="required" />
</xs:complexType>
<xs:simpleType name="allColorTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Black" />
<xs:enumeration value="Blue" />
<xs:enumeration value="Cyan" />
<xs:enumeration value="Green" />
<xs:enumeration value="HighIntensity" />
<xs:enumeration value="Magenta" />
<xs:enumeration value="Purple" />
<xs:enumeration value="Red" />
<xs:enumeration value="White" />
<xs:enumeration value="Yellow" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="eventLogEntryType">
<xs:attribute name="value" type="EventLogEntryType" use="required" />
</xs:complexType>
<xs:simpleType name="EventLogEntryType">
<xs:restriction base="xs:string">
<xs:enumeration value="Error" />
<xs:enumeration value="Warning" />
<xs:enumeration value="Information" />
<xs:enumeration value="SuccessAudit" />
<xs:enumeration value="FailureAudit" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="severity">
<xs:attribute name="value" type="severityTypes" use="required" />
</xs:complexType>
<xs:simpleType name="severityTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Emergency" />
<xs:enumeration value="Alert" />
<xs:enumeration value="Critical" />
<xs:enumeration value="Error" />
<xs:enumeration value="Warning" />
<xs:enumeration value="Notice" />
<xs:enumeration value="Informational" />
<xs:enumeration value="Debug" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="attributes">
<xs:attribute name="value" type="attributesTypes" use="required" />
</xs:complexType>
<xs:simpleType name="attributesTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Bright" />
<xs:enumeration value="Dim" />
<xs:enumeration value="Underscore" />
<xs:enumeration value="Blink" />
<xs:enumeration value="Reverse" />
<xs:enumeration value="Hidden" />
<xs:enumeration value="Strikethrough" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="backColor">
<xs:attribute name="value" type="allColorTypes" use="required" />
</xs:complexType>
<xs:complexType name="immediateFlush">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="applicationName">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="logName">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="machineName">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="appendToFile">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="encoding">
<xs:attribute name="value" type="encodingTypes" use="required" />
</xs:complexType>
<xs:simpleType name="encodingTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="us-ascii" />
<xs:enumeration value="utf-7" />
<xs:enumeration value="utf-8" />
<xs:enumeration value="utf-16" />
<xs:enumeration value="unicodeFFFE" />
<xs:enumeration value="utf-32" />
<xs:enumeration value="utf-32BE" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="file">
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
</xs:complexType>
<xs:complexType name="lockingModel">
<xs:attribute name="type" type="lockingModelTypes" use="required" />
</xs:complexType>
<xs:simpleType name="lockingModelTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Appender.FileAppender+ExclusiveLock" />
<xs:enumeration value="log4net.Appender.FileAppender+MinimalLock" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="identity">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="recipient">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="sender">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="server">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="sink">
<xs:attribute name="value" type="xs:anyURI" />
</xs:complexType>
<xs:complexType name="countDirection">
<xs:attribute name="value" type="countDirectionTypes" use="required" />
</xs:complexType>
<xs:simpleType name="countDirectionTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="-1" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="datePattern">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="maxFileSize">
<xs:attribute name="value" type="xs:long" use="required" />
</xs:complexType>
<xs:complexType name="maximumFileSize">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="parameter">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="dbType" type="dbType" />
<xs:element minOccurs="0" maxOccurs="1" name="parameterName" type="parameterName" />
<xs:element minOccurs="0" maxOccurs="1" name="layout" type="layout" />
<xs:element minOccurs="0" maxOccurs="1" name="precision" type="precision" />
<xs:element minOccurs="0" maxOccurs="1" name="scale" type="scale" />
<xs:element minOccurs="0" maxOccurs="1" name="size" type="size" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="dbType">
<xs:attribute name="value" type="DbType" use="required" />
</xs:complexType>
<xs:simpleType name="DbType">
<xs:restriction base="xs:string">
<xs:enumeration value="AnsiString" />
<xs:enumeration value="Binary" />
<xs:enumeration value="Byte" />
<xs:enumeration value="Boolean" />
<xs:enumeration value="Currency" />
<xs:enumeration value="Date" />
<xs:enumeration value="DateTime" />
<xs:enumeration value="Decimal" />
<xs:enumeration value="Double" />
<xs:enumeration value="Guid" />
<xs:enumeration value="Int16" />
<xs:enumeration value="Int32" />
<xs:enumeration value="Int64" />
<xs:enumeration value="Object" />
<xs:enumeration value="SByte" />
<xs:enumeration value="Single" />
<xs:enumeration value="String" />
<xs:enumeration value="Time" />
<xs:enumeration value="UInt16" />
<xs:enumeration value="UInt32" />
<xs:enumeration value="UInt64" />
<xs:enumeration value="VarNumeric" />
<xs:enumeration value="AnsiStringFixedLength" />
<xs:enumeration value="StringFixedLength" />
<xs:enumeration value="Xml" />
<xs:enumeration value="DateTime2" />
<xs:enumeration value="DateTimeOffset" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="parameterName">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="layout">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="base64EncodeProperties" type="base64EncodeProperties" />
<xs:element minOccurs="0" maxOccurs="1" name="base64EncodeMessage" type="base64EncodeMessage" />
<xs:element minOccurs="0" maxOccurs="1" name="key" type="key" />
<xs:element minOccurs="0" maxOccurs="1" name="header" type="header" />
<xs:element minOccurs="0" maxOccurs="1" name="footer" type="footer" />
<xs:element minOccurs="0" maxOccurs="1" name="ignoresException" type="ignoresException" />
<xs:element minOccurs="0" maxOccurs="1" name="conversionPattern" type="conversionPattern" />
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
</xs:choice>
</xs:sequence>
<xs:attribute name="type" type="log4netLayoutTypes" use="required" />
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="base64EncodeProperties">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="base64EncodeMessage">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="key">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="header">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="footer">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="ignoresException">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="conversionPattern">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:simpleType name="log4netLayoutTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Layout.ExceptionLayout" />
<xs:enumeration value="log4net.Layout.PatternLayout" />
<xs:enumeration value="log4net.Layout.RawPropertyLayout" />
<xs:enumeration value="log4net.Layout.RawTimeStampLayout" />
<xs:enumeration value="log4net.Layout.RawUtcTimeStampLayout" />
<xs:enumeration value="log4net.Layout.SimpleLayout" />
<xs:enumeration value="log4net.Layout.XmlLayout" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="precision">
<xs:attribute name="value" type="xs:unsignedByte" use="required" />
</xs:complexType>
<xs:complexType name="scale">
<xs:attribute name="value" type="xs:unsignedByte" use="required" />
</xs:complexType>
<xs:complexType name="size">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="rollingStyle">
<xs:attribute name="value" type="rollingStyleTypes" use="required" />
</xs:complexType>
<xs:simpleType name="rollingStyleTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Once" />
<xs:enumeration value="Size" />
<xs:enumeration value="Date" />
<xs:enumeration value="Composite" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="staticLogFileName">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="from">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="priority">
<xs:attribute name="value" type="priorityTypes" use="required" />
</xs:complexType>
<xs:simpleType name="priorityTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Normal" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="subject">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="to">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="authentication">
<xs:attribute name="value" type="authenticationTypes" use="required" />
</xs:complexType>
<xs:simpleType name="authenticationTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Basic" />
<xs:enumeration value="Ntlm" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="password">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="smtpHost">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="userName">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="port">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="pickupDir">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="localPort">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="remoteAddress">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="remotePort">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="maxSizeRollBackups">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="filter">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="levelMax" type="levelMax" />
<xs:element minOccurs="0" maxOccurs="1" name="levelToMatch" type="levelToMatch" />
<xs:element minOccurs="0" maxOccurs="1" name="levelMin" type="levelMin" />
<xs:element minOccurs="0" maxOccurs="1" name="acceptOnMatch" type="acceptOnMatch" />
<xs:element minOccurs="0" maxOccurs="1" name="loggerToMatch" type="loggerToMatch" />
<xs:element minOccurs="0" maxOccurs="1" name="key" type="key" />
<xs:element minOccurs="0" maxOccurs="1" name="stringToMatch" type="stringToMatch" />
<xs:element minOccurs="0" maxOccurs="1" name="param" type="param" />
<xs:element minOccurs="0" maxOccurs="1" name="regexToMatch" type="regexToMatch" />
</xs:choice>
</xs:sequence>
<xs:attribute name="type" type="log4netFilterTypes" use="required" />
</xs:complexType>
<xs:complexType name="levelMax">
<xs:attribute name="value" type="log4netLevel" use="required" />
</xs:complexType>
<xs:complexType name="levelToMatch">
<xs:attribute name="value" type="log4netLevel" use="required" />
</xs:complexType>
<xs:complexType name="levelMin">
<xs:attribute name="value" type="log4netLevel" use="required" />
</xs:complexType>
<xs:complexType name="acceptOnMatch">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="loggerToMatch">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="stringToMatch">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="regexToMatch">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:simpleType name="log4netFilterTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Filter.DenyAllFilter" />
<xs:enumeration value="log4net.Filter.LevelMatchFilter" />
<xs:enumeration value="log4net.Filter.LevelRangeFilter" />
<xs:enumeration value="log4net.Filter.LoggerMatchFilter" />
<xs:enumeration value="log4net.Filter.MdcFilter" />
<xs:enumeration value="log4net.Filter.NdcFilter" />
<xs:enumeration value="log4net.Filter.PropertyFilter" />
<xs:enumeration value="log4net.Filter.StringMatchFilter" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="securityContext">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="userName" type="userName" />
<xs:element minOccurs="0" maxOccurs="1" name="password" type="password" />
<xs:element minOccurs="0" maxOccurs="1" name="domain" type="domain" />
</xs:sequence>
<xs:attribute name="type" type="securityContextTypes" use="required" />
</xs:complexType>
<xs:complexType name="domain">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:simpleType name="securityContextTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Util.NullSecurityContext" />
<xs:enumeration value="log4net.Util.WindowsSecurityContext" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="bufferSize">
<xs:attribute name="value" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="threshold">
<xs:attribute name="value" type="log4netLevel" use="required" />
</xs:complexType>
<xs:complexType name="lossy">
<xs:attribute name="value" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="evaluator">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="threshold" type="threshold" />
</xs:sequence>
<xs:attribute name="type" type="evaluatorTypes" use="required" />
</xs:complexType>
<xs:simpleType name="evaluatorTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Core.LevelEvaluator" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="commandText">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="commandType">
<xs:attribute name="value" type="CommandType" use="required" />
</xs:complexType>
<xs:simpleType name="CommandType">
<xs:restriction base="xs:string">
<xs:enumeration value="Text" />
<xs:enumeration value="StoredProcedure" />
<xs:enumeration value="TableDirect" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="connectionString">
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="connectionType">
<xs:attribute name="value" type="connectionTypeTypes" use="required" />
</xs:complexType>
<xs:simpleType name="connectionTypeTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="System.Data.OleDb.OleDbConnection, System.Data" />
<xs:enumeration value="System.Data.SqlClient.SqlConnection, System.Data" />
<xs:enumeration value="Microsoft.Data.Odbc.OdbcConnection, Microsoft.Data.Odbc" />
<xs:enumeration value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient" />
<xs:enumeration value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="log4netAppenderTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="log4net.Appender.AdoNetAppender" />
<xs:enumeration value="log4net.Appender.AnsiColorTerminalAppender" />
<xs:enumeration value="log4net.Appender.AspNetTraceAppender" />
<xs:enumeration value="log4net.Appender.BufferingForwardingAppender" />
<xs:enumeration value="log4net.Appender.ColoredConsoleAppender" />
<xs:enumeration value="log4net.Appender.ConsoleAppender" />
<xs:enumeration value="log4net.Appender.DebugAppender" />
<xs:enumeration value="log4net.Appender.EventLogAppender" />
<xs:enumeration value="log4net.Appender.FileAppender" />
<xs:enumeration value="log4net.Appender.ForwardingAppender" />
<xs:enumeration value="log4net.Appender.LocalSyslogAppender" />
<xs:enumeration value="log4net.Appender.MemoryAppender" />
<xs:enumeration value="log4net.Appender.NetSendAppender" />
<xs:enumeration value="log4net.Appender.OutputDebugStringAppender" />
<xs:enumeration value="log4net.Appender.RemoteSyslogAppender" />
<xs:enumeration value="log4net.Appender.RemotingAppender" />
<xs:enumeration value="log4net.Appender.RollingFileAppender" />
<xs:enumeration value="log4net.Appender.SmtpAppender" />
<xs:enumeration value="log4net.Appender.SmtpPickupDirAppender" />
<xs:enumeration value="log4net.Appender.TelnetAppender" />
<xs:enumeration value="log4net.Appender.TextWriterAppender" />
<xs:enumeration value="log4net.Appender.TraceAppender" />
<xs:enumeration value="log4net.Appender.UdpAppender" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="log4netUpdateAttribute">
<xs:restriction base="xs:string">
<xs:enumeration value="Merge" />
<xs:enumeration value="Overwrite" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment