summaryrefslogtreecommitdiff
path: root/docs/docbook/smbdotconf
diff options
context:
space:
mode:
Diffstat (limited to 'docs/docbook/smbdotconf')
-rw-r--r--docs/docbook/smbdotconf/base/adsserver.xml15
-rw-r--r--docs/docbook/smbdotconf/base/bindinterfacesonly.xml71
-rw-r--r--docs/docbook/smbdotconf/base/comment.xml18
-rw-r--r--docs/docbook/smbdotconf/base/directory.xml9
-rw-r--r--docs/docbook/smbdotconf/base/displaycharset.xml16
-rw-r--r--docs/docbook/smbdotconf/base/doscharset.xml16
-rw-r--r--docs/docbook/smbdotconf/base/interfaces.xml51
-rw-r--r--docs/docbook/smbdotconf/base/netbiosaliases.xml20
-rw-r--r--docs/docbook/smbdotconf/base/netbiosname.xml20
-rw-r--r--docs/docbook/smbdotconf/base/netbiosscope.xml10
-rw-r--r--docs/docbook/smbdotconf/base/path.xml31
-rw-r--r--docs/docbook/smbdotconf/base/realm.xml15
-rw-r--r--docs/docbook/smbdotconf/base/serverstring.xml24
-rw-r--r--docs/docbook/smbdotconf/base/unixcharset.xml15
-rw-r--r--docs/docbook/smbdotconf/base/workgroup.xml16
-rwxr-xr-xdocs/docbook/smbdotconf/generate-file-list.sh8
-rw-r--r--docs/docbook/smbdotconf/smbconf.dtd10
-rw-r--r--docs/docbook/smbdotconf/split-original-smb.conf.xsl78
18 files changed, 443 insertions, 0 deletions
diff --git a/docs/docbook/smbdotconf/base/adsserver.xml b/docs/docbook/smbdotconf/base/adsserver.xml
new file mode 100644
index 0000000000..4dd2a4b635
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/adsserver.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="ads server"
+ context="G"
+ basic="1" advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>If this option is specified, samba does not try to figure out what
+ ads server to use itself, but uses the specified ads server. Either one
+ DNS name or IP address can be used.</para>
+
+ <para>Default: <command moreinfo="none">ads server = </command></para>
+
+ <para>Example: <command moreinfo="none">ads server = 192.168.1.2</command></para>
+</listitem>
+
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/bindinterfacesonly.xml b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml
new file mode 100644
index 0000000000..3ad9aa4614
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml
@@ -0,0 +1,71 @@
+<samba:parameter name="bind interfaces only"
+ context="G"
+ advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This global parameter allows the Samba admin
+ to limit what interfaces on a machine will serve SMB requests. It
+ affects file service <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> and name service <citerefentry><refentrytitle>nmbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> in a slightly different ways.</para>
+
+ <para>For name service it causes <command moreinfo="none">nmbd</command> to bind
+ to ports 137 and 138 on the interfaces listed in
+ the <link linkend="INTERFACES">interfaces</link> parameter. <command moreinfo="none">nmbd</command> also
+ binds to the &quot;all addresses&quot; interface (0.0.0.0)
+ on ports 137 and 138 for the purposes of reading broadcast messages.
+ If this option is not set then <command moreinfo="none">nmbd</command> will service
+ name requests on all of these sockets. If <parameter moreinfo="none">bind interfaces
+ only</parameter> is set then <command moreinfo="none">nmbd</command> will check the
+ source address of any packets coming in on the broadcast sockets
+ and discard any that don't match the broadcast addresses of the
+ interfaces in the <parameter moreinfo="none">interfaces</parameter> parameter list.
+ As unicast packets are received on the other sockets it allows
+ <command moreinfo="none">nmbd</command> to refuse to serve names to machines that
+ send packets that arrive through any interfaces not listed in the
+ <parameter moreinfo="none">interfaces</parameter> list. IP Source address spoofing
+ does defeat this simple check, however, so it must not be used
+ seriously as a security feature for <command moreinfo="none">nmbd</command>.</para>
+
+ <para>For file service it causes <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> to bind only to the interface list
+ given in the <link linkend="INTERFACES">interfaces</link> parameter. This
+ restricts the networks that <command moreinfo="none">smbd</command> will serve
+ to packets coming in those interfaces. Note that you should not use this parameter
+ for machines that are serving PPP or other intermittent or non-broadcast network
+ interfaces as it will not cope with non-permanent interfaces.</para>
+
+ <para>If <parameter moreinfo="none">bind interfaces only</parameter> is set then
+ unless the network address <emphasis>127.0.0.1</emphasis> is added
+ to the <parameter moreinfo="none">interfaces</parameter> parameter
+ list <citerefentry><refentrytitle>smbpasswd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>swat</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> may not work as expected due
+ to the reasons covered below.</para>
+
+ <para>To change a users SMB password, the <command moreinfo="none">smbpasswd</command>
+ by default connects to the <emphasis>localhost - 127.0.0.1</emphasis>
+ address as an SMB client to issue the password change request. If
+ <parameter moreinfo="none">bind interfaces only</parameter> is set then unless the
+ network address <emphasis>127.0.0.1</emphasis> is added to the
+ <parameter moreinfo="none">interfaces</parameter> parameter list then <command moreinfo="none">
+ smbpasswd</command> will fail to connect in it's default mode.
+ <command moreinfo="none">smbpasswd</command> can be forced to use the primary IP interface
+ of the local host by using its <citerefentry><refentrytitle>smbpasswd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> <parameter moreinfo="none">-r <replaceable>remote machine</replaceable></parameter>
+ parameter, with <replaceable>remote machine</replaceable> set
+ to the IP name of the primary interface of the local host.</para>
+
+ <para>The <command moreinfo="none">swat</command> status page tries to connect with
+ <command moreinfo="none">smbd</command> and <command moreinfo="none">nmbd</command> at the address
+ <emphasis>127.0.0.1</emphasis> to determine if they are running.
+ Not adding <emphasis>127.0.0.1</emphasis> will cause <command moreinfo="none">
+ smbd</command> and <command moreinfo="none">nmbd</command> to always show
+ &quot;not running&quot; even if they really are. This can prevent <command moreinfo="none">
+ swat</command> from starting/stopping/restarting <command moreinfo="none">smbd</command>
+ and <command moreinfo="none">nmbd</command>.</para>
+
+ <para>Default: <command moreinfo="none">bind interfaces only = no</command></para>
+
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/comment.xml b/docs/docbook/smbdotconf/base/comment.xml
new file mode 100644
index 0000000000..f08d06ef25
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/comment.xml
@@ -0,0 +1,18 @@
+<samba:parameter name="comment"
+ context="S"
+ basic="1" advanced="1" share="1" print="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This is a text field that is seen next to a share
+ when a client does a queries the server, either via the network
+ neighborhood or via <command moreinfo="none">net view</command> to list what shares
+ are available.</para>
+
+ <para>If you want to set the string that is displayed next to the
+ machine name then see the <link linkend="SERVERSTRING"><parameter moreinfo="none">
+ server string</parameter></link> parameter.</para>
+
+ <para>Default: <emphasis>No comment string</emphasis></para>
+ <para>Example: <command moreinfo="none">comment = Fred's Files</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/directory.xml b/docs/docbook/smbdotconf/base/directory.xml
new file mode 100644
index 0000000000..f912c39c8c
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/directory.xml
@@ -0,0 +1,9 @@
+<samba:parameter name="directory"
+ context="S"
+ hide="1"
+ xmlns:samba="http://samba.org/common">
+
+<listitem>
+ <para>Synonym for <link linkend="PATH"><parameter moreinfo="none">path</parameter></link>.</para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/displaycharset.xml b/docs/docbook/smbdotconf/base/displaycharset.xml
new file mode 100644
index 0000000000..e02842ab48
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/displaycharset.xml
@@ -0,0 +1,16 @@
+<samba:parameter name="display charset"
+ context="G"
+ advanced="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>Specifies the charset that samba will use
+ to print messages to stdout and stderr and SWAT will use.
+ Should generally be the same as the <command moreinfo="none">unix charset</command>.
+ </para>
+
+ <para>Default: <command moreinfo="none">display charset = ASCII</command></para>
+
+ <para>Example: <command moreinfo="none">display charset = UTF8</command></para>
+
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/doscharset.xml b/docs/docbook/smbdotconf/base/doscharset.xml
new file mode 100644
index 0000000000..5fc718dcaa
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/doscharset.xml
@@ -0,0 +1,16 @@
+<samba:parameter name="dos charset"
+ context="G"
+ advanced="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>DOS SMB clients assume the server has
+ the same charset as they do. This option specifies which
+ charset Samba should talk to DOS clients.
+ </para>
+
+ <para>The default depends on which charsets you have installed.
+ Samba tries to use charset 850 but falls back to ASCII in
+ case it is not available. Run <citerefentry><refentrytitle>testparm</refentrytitle>
+ <manvolnum>1</manvolnum></citerefentry> to check the default on your system.</para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/interfaces.xml b/docs/docbook/smbdotconf/base/interfaces.xml
new file mode 100644
index 0000000000..3fa346e206
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/interfaces.xml
@@ -0,0 +1,51 @@
+<samba:parameter name="interfaces"
+ context="G"
+ basic="1" advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This option allows you to override the default
+ network interfaces list that Samba will use for browsing, name
+ registration and other NBT traffic. By default Samba will query
+ the kernel for the list of all active interfaces and use any
+ interfaces except 127.0.0.1 that are broadcast capable.</para>
+
+ <para>The option takes a list of interface strings. Each string
+ can be in any of the following forms:</para>
+
+ <itemizedlist>
+ <listitem><para>a network interface name (such as eth0).
+ This may include shell-like wildcards so eth* will match
+ any interface starting with the substring &quot;eth&quot;</para></listitem>
+
+ <listitem><para>an IP address. In this case the netmask is
+ determined from the list of interfaces obtained from the
+ kernel</para></listitem>
+
+ <listitem><para>an IP/mask pair. </para></listitem>
+
+ <listitem><para>a broadcast/mask pair.</para></listitem>
+ </itemizedlist>
+
+ <para>The &quot;mask&quot; parameters can either be a bit length (such
+ as 24 for a C class network) or a full netmask in dotted
+ decimal form.</para>
+
+ <para>The &quot;IP&quot; parameters above can either be a full dotted
+ decimal IP address or a hostname which will be looked up via
+ the OS's normal hostname resolution mechanisms.</para>
+
+ <para>For example, the following line:</para>
+
+ <para><command moreinfo="none">interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0</command></para>
+
+ <para>would configure three network interfaces corresponding
+ to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10.
+ The netmasks of the latter two interfaces would be set to 255.255.255.0.</para>
+
+ <para>See also <link linkend="BINDINTERFACESONLY"><parameter moreinfo="none">bind
+ interfaces only</parameter></link>.</para>
+
+ <para>Default: <emphasis>all active interfaces except 127.0.0.1
+ that are broadcast capable</emphasis></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/netbiosaliases.xml b/docs/docbook/smbdotconf/base/netbiosaliases.xml
new file mode 100644
index 0000000000..a62fb8f7d6
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/netbiosaliases.xml
@@ -0,0 +1,20 @@
+<samba:parameter name="netbios aliases"
+ context="G"
+ advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This is a list of NetBIOS names that <ulink url="nmbd.8.html">nmbd(8)</ulink> will
+ advertise as additional names by which the Samba server is known. This allows one machine
+ to appear in browse lists under multiple names. If a machine is acting as a browse server
+ or logon server none of these names will be advertised as either browse server or logon
+ servers, only the primary name of the machine will be advertised with these capabilities.
+ </para>
+
+ <para>See also <link linkend="NETBIOSNAME"><parameter moreinfo="none">netbios
+ name</parameter></link>.</para>
+
+ <para>Default: <emphasis>empty string (no additional names)</emphasis></para>
+
+ <para>Example: <command moreinfo="none">netbios aliases = TEST TEST1 TEST2</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/netbiosname.xml b/docs/docbook/smbdotconf/base/netbiosname.xml
new file mode 100644
index 0000000000..287a8f9f9f
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/netbiosname.xml
@@ -0,0 +1,20 @@
+<samba:parameter name="netbios name"
+ context="G"
+ basic="1" advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This sets the NetBIOS name by which a Samba
+ server is known. By default it is the same as the first component
+ of the host's DNS name. If a machine is a browse server or
+ logon server this name (or the first component
+ of the hosts DNS name) will be the name that these services are
+ advertised under.</para>
+
+ <para>See also <link linkend="NETBIOSALIASES"><parameter moreinfo="none">netbios
+ aliases</parameter></link>.</para>
+
+ <para>Default: <emphasis>machine DNS name</emphasis></para>
+
+ <para>Example: <command moreinfo="none">netbios name = MYNAME</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/netbiosscope.xml b/docs/docbook/smbdotconf/base/netbiosscope.xml
new file mode 100644
index 0000000000..8c5866bc32
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/netbiosscope.xml
@@ -0,0 +1,10 @@
+<samba:parameter name="netbios scope"
+ context="G"
+ advanced="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This sets the NetBIOS scope that Samba will
+ operate under. This should not be set unless every machine
+ on your LAN also sets this value.</para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/path.xml b/docs/docbook/smbdotconf/base/path.xml
new file mode 100644
index 0000000000..9f0a7cd976
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/path.xml
@@ -0,0 +1,31 @@
+<samba:parameter name="path"
+ context="S"
+ basic="1" advanced="1" share="1" print="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This parameter specifies a directory to which
+ the user of the service is to be given access. In the case of
+ printable services, this is where print data will spool prior to
+ being submitted to the host for printing.</para>
+
+ <para>For a printable service offering guest access, the service
+ should be readonly and the path should be world-writeable and
+ have the sticky bit set. This is not mandatory of course, but
+ you probably won't get the results you expect if you do
+ otherwise.</para>
+
+ <para>Any occurrences of <parameter moreinfo="none">%u</parameter> in the path
+ will be replaced with the UNIX username that the client is using
+ on this connection. Any occurrences of <parameter moreinfo="none">%m</parameter>
+ will be replaced by the NetBIOS name of the machine they are
+ connecting from. These replacements are very useful for setting
+ up pseudo home directories for users.</para>
+
+ <para>Note that this path will be based on <link linkend="ROOTDIR">
+ <parameter moreinfo="none">root dir</parameter></link> if one was specified.</para>
+
+ <para>Default: <emphasis>none</emphasis></para>
+
+ <para>Example: <command moreinfo="none">path = /home/fred</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/realm.xml b/docs/docbook/smbdotconf/base/realm.xml
new file mode 100644
index 0000000000..c0b1d1aad6
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/realm.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="realm"
+ context="G"
+ basic="1" advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This option specifies the kerberos realm to use. The realm is
+ used as the ADS equivalent of the NT4 <command moreinfo="none">domain</command>. It
+ is usually set to the DNS name of the kerberos server.
+ </para>
+
+ <para>Default: <command moreinfo="none">realm = </command></para>
+
+ <para>Example: <command moreinfo="none">realm = mysambabox.mycompany.com</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/serverstring.xml b/docs/docbook/smbdotconf/base/serverstring.xml
new file mode 100644
index 0000000000..5935dd80dd
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/serverstring.xml
@@ -0,0 +1,24 @@
+<samba:parameter name="server string"
+ context="G"
+ basic="1" advanced="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This controls what string will show up in the printer comment box in print
+ manager and next to the IPC connection in <command moreinfo="none">net view</command>. It
+ can be any string that you wish to show to your users.</para>
+
+ <para>It also sets what will appear in browse lists next
+ to the machine name.</para>
+
+ <para>A <parameter moreinfo="none">%v</parameter> will be replaced with the Samba
+ version number.</para>
+
+ <para>A <parameter moreinfo="none">%h</parameter> will be replaced with the
+ hostname.</para>
+
+ <para>Default: <command moreinfo="none">server string = Samba %v</command></para>
+
+ <para>Example: <command moreinfo="none">server string = University of GNUs Samba
+ Server</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/unixcharset.xml b/docs/docbook/smbdotconf/base/unixcharset.xml
new file mode 100644
index 0000000000..f003c097aa
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/unixcharset.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="unix charset"
+ context="G"
+ advanced="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>Specifies the charset the unix machine
+ Samba runs on uses. Samba needs to know this in order to be able to
+ convert text to the charsets other SMB clients use.
+ </para>
+
+ <para>Default: <command moreinfo="none">unix charset = UTF8</command></para>
+
+ <para>Example: <command moreinfo="none">unix charset = ASCII</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/base/workgroup.xml b/docs/docbook/smbdotconf/base/workgroup.xml
new file mode 100644
index 0000000000..65300bca58
--- /dev/null
+++ b/docs/docbook/smbdotconf/base/workgroup.xml
@@ -0,0 +1,16 @@
+<samba:parameter name="workgroup"
+ context="G"
+ basic="1" advanced="1" wizard="1" developer="1"
+ xmlns:samba="http://samba.org/common">
+<listitem>
+ <para>This controls what workgroup your server will
+ appear to be in when queried by clients. Note that this parameter
+ also controls the Domain name used with
+ the <link linkend="SECURITYEQUALSDOMAIN"><command moreinfo="none">security = domain</command></link>
+ setting.</para>
+
+ <para>Default: <emphasis>set at compile time to WORKGROUP</emphasis></para>
+
+ <para>Example: <command moreinfo="none">workgroup = MYGROUP</command></para>
+</listitem>
+</samba:parameter>
diff --git a/docs/docbook/smbdotconf/generate-file-list.sh b/docs/docbook/smbdotconf/generate-file-list.sh
new file mode 100755
index 0000000000..3495f50c43
--- /dev/null
+++ b/docs/docbook/smbdotconf/generate-file-list.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+echo "<variablelist>"
+find . -type f -name '*.xml' -mindepth 2 | sort -t/ -k3 |
+ while read ; do
+ echo "<xi:include href='$REPLY' parse='xml' xmlns:xi='http://www.w3.org/2001/XInclude'/>"
+ done
+
+echo "</variablelist>"
diff --git a/docs/docbook/smbdotconf/smbconf.dtd b/docs/docbook/smbdotconf/smbconf.dtd
new file mode 100644
index 0000000000..591c9b2738
--- /dev/null
+++ b/docs/docbook/smbdotconf/smbconf.dtd
@@ -0,0 +1,10 @@
+<!ELEMENT parameter (#PCDATA) >
+<!ATTLIST parameter name CDATA #REQUIRED >
+<!ATTLIST parameter context CDATA #REQUIRED >
+<!ATTLIST parameter basic CDATA #REQUIRED >
+<!ATTLIST parameter wizard CDATA #REQUIRED >
+<!ATTLIST parameter advanced CDATA #REQUIRED >
+<!ATTLIST parameter share CDATA #REQUIRED >
+<!ATTLIST parameter print CDATA #REQUIRED >
+<!ATTLIST parameter developer CDATA #REQUIRED >
+<!ATTLIST parameter hide CDATA #REQUIRED >
diff --git a/docs/docbook/smbdotconf/split-original-smb.conf.xsl b/docs/docbook/smbdotconf/split-original-smb.conf.xsl
new file mode 100644
index 0000000000..7a6a2b920a
--- /dev/null
+++ b/docs/docbook/smbdotconf/split-original-smb.conf.xsl
@@ -0,0 +1,78 @@
+<?xml version='1.0'?>
+<!-- vim:set sts=2 shiftwidth=2 syntax=xml: -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:samba="http://samba.org/common"
+ version="1.1"
+ extension-element-prefixes="exsl">
+
+<xsl:output method="xml"/>
+
+<xsl:param name="output.dir.name" select="'test/'"/>
+
+<!-- This is needed to copy content unchanged -->
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+</xsl:template>
+
+<!-- Parse all varlistentries and extract those of them which are descriptions of smb.conf
+ parameters. We determine them by existence of <anchor> element inside <term> element.
+ If <anchor> is there, then its 'id' attribute is translated to lower case and is used
+ as basis for file name for that parameter.
+-->
+<xsl:template match="varlistentry">
+ <xsl:variable name="output.dir.name" select="$output.dir.name"/>
+ <!-- Extract anchor's 'id' and translate it to lower case -->
+ <xsl:variable name="fname">
+ <xsl:value-of select="translate(string(term/anchor/@id),
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>
+ </xsl:variable>
+ <!-- reconstruct varlistentry - not all of them will go into separate files
+ and also we must repair the main varlistentry itself.
+ -->
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <!-- Now put varlistentry into separate file _if_ it has anchor associated with it -->
+ <xsl:choose>
+ <xsl:when test="$fname != ''">
+ <!-- full file name -->
+ <xsl:variable name="filename"><xsl:value-of select="$output.dir.name"/><xsl:value-of select="$fname"/>.xml</xsl:variable>
+ <!-- Debug message for an operator, just to show progress of processing :) -->
+ <xsl:message>
+ <xsl:text>Writing </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:if test="term/anchor/@id">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="term/anchor/@id"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:message>
+ <!-- Write finally varlistentry to a separate file -->
+ <exsl:document href="{$filename}"
+ method="xml"
+ encoding="UTF-8"
+ indent="yes"
+ omit-xml-declaration="yes">
+ <xsl:element name="samba:parameter">
+ <xsl:copy-of select="$content"/>
+ </xsl:element>
+ </exsl:document>
+ <xsl:text disable-output-escaping="yes">&amp;smb.</xsl:text>
+ <xsl:value-of select="$fname"/>
+ <xsl:text>;</xsl:text>
+ </xsl:when>
+ <!-- this was a varlistentry w/o anchor associated, just dump it to the main document -->
+ <xsl:otherwise>
+ <xsl:element name="varlistentry">
+ <xsl:copy-of select="$content"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>