<?xml version="1.0" encoding="UTF-8"?> <!-- logback.xml schema, https://github.com/enricopulatzo/logback-XSD https://github.com/nkatsar/logback-XSD --> <xsd:schema targetNamespace="http://ch.qos.logback/xml/ns/logback" xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1"> <xsd:element name="configuration" type="Configuration"/> <xsd:element name="included" type="Configuration"/> <xsd:complexType name="Configuration"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="shutdownHook" minOccurs="0" maxOccurs="1" type="ShutdownHook"/> <xsd:element name="statusListener" minOccurs="0" maxOccurs="unbounded" type="StatusListener"/> <xsd:element name="contextListener" minOccurs="0" maxOccurs="unbounded" type="ContextListener"/> <xsd:element name="jmxConfigurator" minOccurs="0" maxOccurs="1" type="JmxConfigurator"/> <xsd:element name="conversionRule" minOccurs="0" maxOccurs="unbounded" type="ConversionRule"/> <xsd:element name="include" minOccurs="0" maxOccurs="unbounded" type="Include"/> <xsd:element name="contextName" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="define" minOccurs="0" maxOccurs="unbounded" type="Define"/> <xsd:element name="timestamp" minOccurs="0" maxOccurs="1" type="Timestamp"/> <xsd:element name="if" minOccurs="0" maxOccurs="unbounded" type="If"/> <xsd:element name="property" minOccurs="0" maxOccurs="unbounded" type="Property"/> <xsd:element name="appender" minOccurs="0" maxOccurs="unbounded" type="Appender"/> <xsd:element name="logger" minOccurs="0" maxOccurs="unbounded" type="Logger"/> <xsd:element name="root" minOccurs="0" maxOccurs="1" type="Root"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="debug" type="xsd:boolean" use="optional"/> <xsd:attribute name="scan" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="scanPeriod" type="xsd:string" use="optional" default="1 minute"/> <xsd:attribute name="packagingData" type="xsd:boolean" use="optional" default="false"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="ShutdownHook"> <xsd:attribute name="class" type="xsd:string" use="optional" default="ch.qos.logback.core.hook.DelayingShutdownHook"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="ConversionRule"> <xsd:attribute name="conversionWord" type="xsd:string"/> <xsd:attribute name="converterClass" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="StatusListener"> <xsd:attribute name="class" type="xsd:string" use="optional"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="ContextListener"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="resetJUL" type="xsd:boolean"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="class" type="xsd:string"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Include"> <xsd:attribute name="file" use="optional" type="xsd:string"/> <xsd:attribute name="resource" use="optional" type="xsd:string"/> <xsd:attribute name="url" use="optional" type="xsd:string"/> <xsd:attribute name="optional" use="optional" type="xsd:boolean"/> </xsd:complexType> <xsd:complexType name="Define"> <xsd:sequence> <xsd:any minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Timestamp"> <xsd:sequence> <xsd:any minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="key" type="xsd:string" use="optional"/> <xsd:attribute name="datePattern" type="xsd:string" use="optional"/> <xsd:attribute name="timeReference" type="xsd:string" use="optional"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="RollingPolicy"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="fileNamePattern" minOccurs="1" maxOccurs="1" type="xsd:string"/> <xsd:element name="maxHistory" minOccurs="0" maxOccurs="1" type="xsd:int"/> <xsd:element name="minIndex" minOccurs="0" maxOccurs="1" type="xsd:int"/> <xsd:element name="maxIndex" minOccurs="0" maxOccurs="1" type="xsd:int"/> <xsd:element name="timeBasedFileNamingAndTriggeringPolicy" minOccurs="0" maxOccurs="1" type="TriggeringPolicy"/> <xsd:element name="cleanHistoryOnStart" minOccurs="0" maxOccurs="1" type="xsd:boolean"/> <xsd:element name="maxFileSize" minOccurs="0" maxOccurs="1" type="FileSize"/> <xsd:element name="totalSizeCap" minOccurs="0" maxOccurs="1" type="FileSize"/> </xsd:choice> <xsd:attribute name="class" type="xsd:string" use="required"/> </xsd:complexType> <xsd:simpleType name="FileSize"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[1-9][0-9]*(KB|MB|GB)?"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="TriggeringPolicy"> <xsd:sequence> <xsd:element name="maxFileSize" minOccurs="0" maxOccurs="1" type="FileSize"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="If"> <xsd:choice maxOccurs="unbounded"> <xsd:element type="Configuration" name="then"/> <xsd:element type="Configuration" name="else"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="condition" type="xsd:string"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Property"> <xsd:sequence> <xsd:any minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="scope" type="xsd:string" use="optional"/> <xsd:attribute name="name" type="xsd:string" use="optional"/> <xsd:attribute name="value" type="xsd:string" use="optional"/> <xsd:attribute name="file" type="xsd:string" use="optional"/> <xsd:attribute name="resource" type="xsd:string" use="optional"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Appender"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="target" minOccurs="0" maxOccurs="1" type="Target"/> <xsd:element name="file" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="withJansi" minOccurs="0" maxOccurs="1" type="xsd:boolean"/> <xsd:element name="encoder" minOccurs="0" maxOccurs="1" type="Encoder"/> <xsd:element name="filter" minOccurs="0" maxOccurs="1" type="Filter"/> <xsd:element name="append" minOccurs="0" maxOccurs="1" type="xsd:boolean"/> <xsd:element name="prudent" minOccurs="0" maxOccurs="1" type="xsd:boolean"/> <xsd:element name="layout" minOccurs="0" maxOccurs="1" type="Layout"/> <xsd:element name="rollingPolicy" minOccurs="0" maxOccurs="1" type="RollingPolicy"/> <xsd:element name="connectionSource" minOccurs="0" maxOccurs="1" type="ConnectionSource"/> <xsd:element name="triggeringPolicy" minOccurs="0" maxOccurs="1" type="TriggeringPolicy"/> <xsd:element name="appender-ref" minOccurs="0" maxOccurs="1" type="AppenderRef"/> <xsd:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="class" type="xsd:string" use="required"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:simpleType name="Target"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="System.out"/> <xsd:enumeration value="System.err"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="Filter"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="level" minOccurs="0" maxOccurs="unbounded" type="LoggerLevel"/> <xsd:element name="onMatch" minOccurs="0" maxOccurs="unbounded" type="MatchValue"/> <xsd:element name="onMismatch" minOccurs="0" maxOccurs="unbounded" type="MatchValue"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="class" type="xsd:string" use="optional"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:simpleType name="MatchValue"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ACCEPT"/> <xsd:enumeration value="DENY"/> <xsd:enumeration value="NEUTRAL"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="Layout"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="pattern" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="class" type="xsd:string" use="optional"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Logger"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="appender-ref" minOccurs="0" maxOccurs="unbounded" type="AppenderRef"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="level" type="LoggerLevel" use="optional"/> <xsd:attribute name="additivity" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="Encoder"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="charset" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="immediateFlush" type="xsd:boolean" minOccurs="0" maxOccurs="1"/> <xsd:element name="layout" minOccurs="0" maxOccurs="1" type="Layout"/> <xsd:element name="outputPatternAsHeader" type="xsd:boolean" minOccurs="0" maxOccurs="1"/> <xsd:element name="pattern" type="xsd:string" minOccurs="0" maxOccurs="1"/> </xsd:choice> <xsd:attribute name="class" type="xsd:string" use="optional" default="ch.qos.logback.classic.encoder.PatternLayoutEncoder" /> </xsd:complexType> <xsd:complexType name="Root"> <xsd:sequence> <xsd:element name="appender-ref" minOccurs="0" maxOccurs="unbounded" type="AppenderRef"/> </xsd:sequence> <xsd:attribute name="level" use="required" type="LoggerLevel"/> <xsd:anyAttribute/> </xsd:complexType> <xsd:complexType name="AppenderRef"> <xsd:attribute name="ref" type="xsd:string"/> </xsd:complexType> <xsd:simpleType name="LoggerLevel"> <xsd:union> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="OFF"/> <xsd:enumeration value="off"/> <xsd:enumeration value="ALL"/> <xsd:enumeration value="all"/> <xsd:enumeration value="INHERITED"/> <xsd:enumeration value="inherited"/> <xsd:enumeration value="NULL"/> <xsd:enumeration value="null"/> <xsd:enumeration value="ERROR"/> <xsd:enumeration value="error"/> <xsd:enumeration value="WARN"/> <xsd:enumeration value="warn"/> <xsd:enumeration value="INFO"/> <xsd:enumeration value="info"/> <xsd:enumeration value="DEBUG"/> <xsd:enumeration value="debug"/> <xsd:enumeration value="TRACE"/> <xsd:enumeration value="trace"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="($\{.+:-)?[Oo][Ff]{2}\}?"/> <xsd:pattern value="($\{.+:-)?[Aa][Ll]{2}\}?"/> <xsd:pattern value="($\{.+:-)?[Ii][Nn][Hh][Ee][Rr][Ii][Tt][Ee][Dd]\}?"/> <xsd:pattern value="($\{.+:-)?[Nn][Uu][Ll]{2}\}?"/> <xsd:pattern value="($\{.+:-)?[Ee][Rr]{2}[Oo][Rr]\}?"/> <xsd:pattern value="($\{.+:-)?[Ww][Aa][Rr][Nn]\}?"/> <xsd:pattern value="($\{.+:-)?[Ii][Nn][Ff][Oo]\}?"/> <xsd:pattern value="($\{.+:-)?[Dd][Ee][Bb][Uu][Gg]\}?"/> <xsd:pattern value="($\{.+:-)?[Tt][Rr][Aa][Cc][Ee]\}?"/> <xsd:pattern value="\$\{.+\}"/> </xsd:restriction> </xsd:simpleType> </xsd:union> </xsd:simpleType> <xsd:complexType name="JmxConfigurator"/> <xsd:complexType name="ConnectionSource"> <xsd:sequence> <xsd:element name="driverClass" type="xsd:string"/> <xsd:element name="url" type="xsd:string"/> <xsd:element name="user" type="xsd:string"/> <xsd:element name="password" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="class" type="xsd:string" use="required"/> </xsd:complexType> </xsd:schema>