XML shortcut is a small file, which directs svgtex plugin to the source SVG file(s). They can be used to compose from a single *.svg file many different textures, and enrich them with additional effects.
To follow this section, you should be at least familiar with the basics of XML syntax and conventions. You can learn it from many sources in the Web. There is a page about it in Wikipedia, for example. Read that text and analyze the examples, for a while. It should be enough.

Would you like to repeat the actions, shown in the text below? Download the exemplary model:
the example — a P-40B model, with textures, used in this text (the same as in the first part of svgtex description);

1. Simplest case
Let's begin with the simplest case: do you remember from svgtex parameters details, that the length of the path to the source file (File Name field in Plugin panel) can have up to 63 characters? To use longer paths, create a new *.xml file (just in the Notepad, for example). Its content should have structure like on Fig. 1.1:
Fig. 1.1 Simple XML shortcut to a SVG file (the path is longer than 63 characters)

All elements in this XML should have the tex: namespace prefix, otherwise will be ignored. The root node - tex:texture - is always the same. It contains just simple tex:src reference. Type the path to the SVG file into value of its path attribute. You can use paths up to 1023 characters, here.
Name this file nor_details.xml. Place it in the folder, where the actual *.blend file is located. When you type "nor_details.xml" into plugin File Name field, the miniature of the skin.svg picture should appear in the Preview panel (Fig. 1.2). This is the evidence that the shortcut is working properly:
Fig. 1.2. Usage of the nor_details.xml shortcut
2. Using SVG file as picture library
Nearly all raster textures of P-40 model, used as the example here, have been created as a composition of some layers from skin.svg file. Many of these layers were used more than once. For an illustration, let's have look at the B.Skin.Holes texture. It maps small holes on the aircraft skin, and use this picture to alternate the material's opacity (alpha) value. B.Skin.Holes uses holes.png raster image, which has been composed from two layers of skin.svg: Holes and Bkg-White (Fig. 2.1). Result of this composition has been exported from Inkscape to the raster file:
Fig. 2.1 Composition of the airplane skin holes: layers Holes + Bkg-White

To make the Fig. 2.1 clearer, I also have turned on the visibility of the UV layer. It contains the UV unwraps of the Blender meshes. The size and location of the holes is obvious, when you can see these meshes below.

From the same skin.svg file comes the picture for the bump map texture - nor_details.png file. It is composition of many layers, and each of them has different opacity setting. To simplify the export to the raster image, I have decided to place clones of these layers to a single layer: Result:Nor-Details. Then the resulting raster image - nor_details.png - is exported as composition of Result:Nor-Details and Bkg-Grey layer(Fig. 2.2):
Fig. 2.2 Composition of the bump map: Result:Nor-Details + Bkg-Grey

The skin.svg file, with layer visibility set as on Fig. 2.2, we have used in the previous example (compare the texture preview on Fig. 1.2).

XML shortcuts allow to use source *.svg drawing as something like "image library". The same skin.svg file, used in the previous example as the bump map (in B.Skin.Nor-Details texture — see Fig. 1.2), we will use here again. We use it as the source for the holes texture (B.Skin.Holes), without applying any changes to the source SVG picture. Fig. 2.3 shows the content of holes.xml shortcut, which creates this effect:
Fig. 2.3 XML shortcut, alternating layers visibility in the source SVG file.

Comparing to the previous example (Fig. 1.1), the tex:src node contains here some new tex:override elements. The role of tex:src is to point the parser the source SVG file to load. The role of each tex:override is to alternate some properties of particular element from the source SVG file. The id of the "target" for this alternation is specified in for attribute value. On the example from Fig. 2.3, first two tex:override elements turn off visibility (display=”none”) of Bkg-Grey and Ref:Nor-Details layers. The next two tex:overrides are used to turn on visibility (display=”inline”) of of Bkg-White and Holes layers. Propagation of these changes to the target element's children nodes is controlled by the propagate attribute. In this example, propagation is turned off - their visibility does not matter, when their "parent" becomes invisible.

Fig. 2.4 shows the result of holes.xml shortcut:
Fig. 2.4. Content of skin.svg, „filtered” by the holes.xml shortcut

Notice, that in the example above I have typed id of layer Bkg-Grey as „layer5”, „layer19” for Result:Nor-Details layer, and so on. How do I know that they have such ids? You have to find them in the source SVG file (Fig. 2.5):
Fig. 2.5 Discovering in SVG source the id value of the layer, found by the name

Open the SVG file in a web browser (Firefox, for example). Open the context menu and select the View page source command. In the source editor window press Ctrl-F (Find), and find the layer definition, using its name (Fig. 2.5b). The id attribute is the unique identifier of this element, referenced by tex:override.

3. XML shortcuts format
  • tex:texture element is always the root of XML shortcut document (Fig. 1.1). Except tex: namespace declaration (xmlns attribute) it has not any attributes. tex:texture contains one (or more) tex:src elements. You can also place any other SVG element there (without any namespace prefix).
  • tex:src element tells the interpreter to load a source SVG file. Its full name is placed in the path attribute, and can have up to 1023 characters. tex:src can contain zero or more tex:override elements.
  • tex:override element alternates the properties (attribute values) of an element in the SVG source file (pointed by the parent tex:src). The identifier (id) of this "target" node has to be specified in the mandatory for attribute. Additionally, tex:override should contain some SVG attributes, alternating the corresponding values of the "target" element (display, for example). The mandatory propagate attribute specifies the alternation scope. When propagate=”all”, it alternates the target element and all its descendants. When propagate=”none”, the children of the target remain unaltered.
  • In general, you can place in a tex:override node all style attributes, described in the SVG 1.1 specification. I have listed below the names of the most typical SVG properties to be overridden:

    Fig. 3.1 is another example of XML shortcut. It presents some of the rules, described above. (Names of the SVG source files: t.svg i w.svg do not refer to any existing entities. This is just the example of some syntax structures, only.):
    Fig. 3.1 Example of an advanced XML shortcut

    This shortcut composes pictures from two drawings: t.svg and w.svg. (This is a case of multiple tex:src elements). In addition, there is a filter definition (inside the defs group. It is a Gaussian blur effect, having identifier (id) = "Blur3". This effect is used to blur content of the t.svg picture. Id is done by the first tex:override element (with attribute filter=”#Blur3”). Notice, that this tex:override has in for attribute the id of its own parent element (the tex:src node with t="t"). It is also allowed.

    Well, if you have reached this paragraph, dear Reader, it means that you are a programmer or - at least - have the programmer's inclinations. Would you like to write in Python a nice GUI gadget that will enable ordinary users to create XML shortcuts? The xml parser is among Python standard packages, there are also some windowing environments around... Personally I do not need it, so I have not written such thing, yet!