I don't think it's possible to have a schema/DTD with log4j2. Recently I've written a custom appender, and to support the appender my log4j2.xml looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="ERROR" packages="package.same.as.custom.appender">
<appenders>
<CyclicBuffer name="CyclicBuffer" bufferSize="200">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%t] %c{1.} - %msg%n"/>
</CyclicBuffer>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="CyclicBuffer"/>
</root>
</loggers>
</configuration>
The important things to note are that I've got a completely custom CyclicBuffer element, and that it has a completely custom bufferSize attribute. Have a look at the documentation surrounding @PluginFactory and @Plugin for more detail.
Because of this customisation, I don't think that the XML can be validated via a standard, common XSD/DTD. Instead, I think you'll need to create your own XSD if you wish to validate the XML.
One important thing to note, is that in my XML I've got: <configuration status="ERROR". When this is present log4j2 will output any errors associated with incorrect configuration at runtime. While not as convenient as XML validation, it is also very useful!
Hope this is of some help,
Muel.