Akce attach

Příklad 5. Akce attach

<rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
  <namespace ns="http://www.w3.org/1999/xhtml">
    <validate schema="xhtml.xsd">
      <mode>
        <namespace ns="http://www.w3.org/2000/svg">
          <validate schema="svg.rng">
            <mode>
              <anyNamespace>
                <attach/>
              </anyNamespace>
            </mode>
          </validate>
        </namespace>
      </mode>
    </validate>
  </namespace>
</rules>

  • dokument musí začínat sekcí XHTML

  • do ní může být vnořená sekce SVG

  • elementy uvnitř SVG sekce se připojí k SVG sekci (akce attach)

  • vycházíme z předpokladu, že míchat cizí elementy do SVG nemá smysl, a proto je věcí SVG schématu, zda tyto elementy povolí

Příklad 6. Jednotlivé sekce se nejdříve pomocí attach spojí do větších fragmentů a ty se validují

Fragment 1 --> xhtml.xsd:
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:svg="http://www.w3.org/2000/svg">
  <head>
    <title>Ukázka SVG obrázku</title>
  </head>
  <body>
    <h1>Vektorový obrázek v SVG</h1>
  </body>
</html>

Fragment 2 --> svg.rng:
<svg:svg width="4in" height="3in">
  <svg:desc>This is a yellow circle with a red outline</svg:desc>
  <svg:g>
    <p>ahoj</p>  <!-- Připojená XHTML sekce -->
    <svg:circle style="fill: yellow; stroke: red" cx="200" cy="200" r="150"/>
    <svg:text x="80" y="200"
      style="font-size: 36px; font-family: Verdana; color: red; fill: red"
      >Dobrou chuť</svg:text>
  </svg:g>
</svg:svg>