1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

schemaLocation in einer XSL-Datei

Dieses Thema im Forum "XML Technologien" wurde erstellt von oraclin25, 29. Mai 2014.

  1. oraclin25

    oraclin25 Erfahrenes Mitglied

    Hallo zusammen,

    ich frage mich was die Information bzgl. schemaLocation in diesem XSL-File mir nutzt:

    Code (Text):
    1. <xsl:stylesheet version="1.0"
    2.    ...
    3.    xsi:schemaLocation="http://www.ratna.de ../xsd/meine.xsd">
    4.  
    5. ...
    6. ...
    7. </xsl:stylesheet>
    Die Transformierung an sich von einem XML braucht meine.xsd ja gar nicht. Ist das vielleicht so gedacht, dass NACH der Transformation, wenn man will, das Transformationergebnis noch gegen meine.xsd validiiert werden kann?

    Vielen Dank für Eure Hilfestellungen.

    Viele Grüße aus Rheinland,

    Eure Ratna
     
  2. saftmeister

    saftmeister Nutze den Saft! Premium-User

    So ist es. Ein XML-Validator ist damit in der Lage, das wohlgeformte XML zu validieren. Da es aber nicht automatisch aus dem XSL in das XML übernommen wird, musst du einen Eintrag im XSL vornehmen. Das kannst du mit xsl:copy erledigen.
     
  3. oraclin25

    oraclin25 Erfahrenes Mitglied

    Hallo saftmeister,

    danke für die Hilfestellung. Ich habe nachgeprüft, ES GIBT KEINE schemaLocation-ANGABE IM ERGEBNIS-XML. Seltsam.

    Du meintest, man könnte mit xsl:copy die Problematik erledigen. Mhh.. könntest Du mir hierzu bisschen helfen? Ich habe schon versucht, aber schemaLocation wird immer noch nicht mit angezeigt. Ich habe zum Beispiel folgendes probiert:
    Code (Text):
    1.   <!-- string for default namespace uri and schema location -->
    2.    <xsl:variable name="ns" select="'namespaceURL'" />
    3.    <xsl:variable name="schemaLoc" select="'namespaceURL pathToMySchema.xsd'" />
    4.  
    5.    <xsl:template match="/*" priority="1">
    6.      <xsl:element name="{local-name()}" namespace="{$ns}">
    7.        <xsl:attribute name="xsi:schemaLocation"
    8.          namespace="http://www.w3.org/2001/XMLSchema-instance">
    9.   <xsl:value-of select="$schemaLoc" />
    10.   </xsl:attribute>
    11.        <xsl:apply-templates select="@* | node()" />
    12.      </xsl:element>
    13.    </xsl:template>
    Hat aber leider nicht getan. Irgendwie aber auch sehr kompliziert.

    Vielen Dank für die Hilfe.

    Viele Grüße aus Rheinland,

    Eure Ratna
     
  4. saftmeister

    saftmeister Nutze den Saft! Premium-User

Die Seite wird geladen...