zk.xml
WEB-INF/zk.xml
is the configuration descriptor of ZK. This file is
optional. If you want to configure ZK differently from the default, you
need to provide a file called zk.xml
under the WEB-INF
directory.
The root element must be
File Location
You can place zk.xml in either a WAR file or a JAR file.
DOCTYPE restriction
since 10.0
Starting from ZK 10, the xml parser used by ZK declares disallow-doctype-decl
to true
. This prevents the use of DOCTYPE
declaration in xml files, such as zk.xml, lang-addon.xml, config.xml, etc. This is a security measure to prevent XXE attacks using <!DOCTYPE ...>
as vector.
WEB-INF/zk.xml
zk.xml
is usually packed with a Web application and it should be
located under WEB-INF
.
metainfo/zk/zk.xml
since 3.6
For library providers, zk.xml
is better to pack with a JAR file. This
can be done by placing zk.xml in the metainfo/zk
directory
identifiable by the classpath (i.e., in a JAR file).
Additional Configuration File
since 5.0
In addition, you could specify an additional configuration file in a
library or system property called org.zkoss.zk.config.path
. It is
useful if some of the configuration can not be part of the WAR file
(such as depending on the deployment environment). For more information,
please refer to this section.
Notice that zk.xml
found in the classpath is parsed first, then
WEB-INF/zk.xml
, and finally the additional configuration file. It
means the additional configuration file, if any, has the highest
priority, and WEB-INF/zk.xml
(since the later will overrides the
previous one if conflicts).
XML Schema Definition
since 8.6
You could specify the XML schema in the zk.xml as shown below. Many XML editors works better, such as when with auto-complete, if XML schema is specified correctly.
<zk xmlns="http://www.zkoss.org/2005/zk/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zk/config http://www.zkoss.org/2005/zk/config/zk.xsd">
The ZK schema can be downloaded from
http://www.zkoss.org/2005/zk/config/zk.xsd.
In addition, you can find zk.xsd
under the dist/xsd
directory in the
ZK binary distribution.