Altova make??
pices
- xsl
0 ThomasM
ich habe als Eingang diese xml-datei(mischung aus xslt und xml):
<?xml version="1.0" encoding="UTF-8"?>
<xsldig:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsldig="http://www.avt.rwth-aachen.de/xig" xmlns:dig="http://www.dig.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head/>
<body>
<xsl:text>SomeFormat </xsl:text>
<br/>
<xsl:variable name="zahl" select="1"/>
<xsl:for-each select="WomsModel">
<xsl:for-each select="models/WorkProcessModel/elements/Action">
<xsl:choose>
<xsldig:when>
<xsldig:query>
<xsl:instances>
<dig:catom name="meta:ActionWithSuccessor"/>
</xsl:instances>
</xsldig:query>
<b>
<xsl:text>ActionwithSucessor name="</xsl:text>
<xsl:value-of select=" name/Text/lines/Line"> </xsl:value-of>
<xsl:text>".id="</xsl:text>
<xsl:value-of select="$zahl"/>
<xsl:text>" </xsl:text>
</b>
<br/>
</xsldig:when>
<xsl:otherwise>
<b>
<xsl:text>ActionwithOutSucessor name="</xsl:text>
<xsl:value-of select="name/Text/lines/Line"> </xsl:value-of>
<xsl:text>".id="</xsl:text>
<xsl:value-of select="$zahl + 1"/>
<xsl:text>" </xsl:text>
</b>
<br/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsldig:stylesheet>
Transformation-datei:~~~xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsldig="http://www.avt.rwth-aachen.de/xig" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="xsldig:query"/>
<xsl:template match="@|node()">
xsl:copy
<xsl:apply-templates select="@|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Ausgang datei:~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<xsldig:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsldig="http://www.avt.rwth-aachen.de/xig"
xmlns:dig="http://www.dig.org"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
version="2.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head/>
<body>
<xsl:text>SomeFormat </xsl:text>
<br/>
<xsl:variable name="zahl" select="1"/>
<xsl:for-each select="WomsModel">
<xsl:for-each select="models/WorkProcessModel/elements/Action">
<xsl:choose>
<xsldig:when>
<b>
<xsl:text>ActionwithSucessor name="</xsl:text>
<xsl:value-of select=" name/Text/lines/Line"> </xsl:value-of>
<xsl:text>".id="</xsl:text>
<xsl:value-of select="$zahl"/>
<xsl:text>" </xsl:text>
</b>
<br/>
</xsldig:when>
<xsl:otherwise>
<b>
<xsl:text>ActionwithOutSucessor name="</xsl:text>
<xsl:value-of select="name/Text/lines/Line"> </xsl:value-of>
<xsl:text>".id="</xsl:text>
<xsl:value-of select="$zahl + 1"/>
<xsl:text>" </xsl:text>
</b>
<br/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsldig:stylesheet>
gewünschte Ausgang-datei:~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsldig="http://www.avt.rwth-aachen.de/xig"
xmlns:dig="http://www.dig.org"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
version="2.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head/>
<body>
xsl:textSomeFormat </xsl:text>
<br/>
<xsl:variable name="zahl" select="1"/>
<xsl:for-each select="WomsModel">
<xsl:for-each select="models/WorkProcessModel/elements/Action">
xsl:choose
xsldig:when
<b>
xsl:textActionwithSucessor name="</xsl:text>
<xsl:value-of select=" name/Text/lines/Line"> </xsl:value-of>
xsl:text".id="</xsl:text>
<xsl:value-of select="$zahl"/>
xsl:text" </xsl:text>
</b>
<br/>
</xsldig:when>
xsl:otherwise
<b>
xsl:textActionwithOutSucessor name="</xsl:text>
<xsl:value-of select="name/Text/lines/Line"> </xsl:value-of>
xsl:text".id="</xsl:text>
<xsl:value-of select="$zahl + 1"/>
xsl:text" </xsl:text>
</b>
<br/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsldig:stylesheet>
1\.: problem ist wenn ich durch den prozessor die transformation durchführe kriege ich die Ausgangdatei ohne Problem.
Durch meine Editor kriege ich diese fehlermeldung:"element <xsldig:stylesheet> has not declared" wieso?
2\. gibt es eine möglichkeit meine Transformationsdatei zu ändern so dass ich am Anfang der Ausgangsdatei <xsl:stylesheet> anstatt <xsldig:stylesheet> direkt erhalte (also als Ausgang datei (output)eine normale xsl datei)??(gewünschte Ausgang)
Hallo pices,
- gibt es eine möglichkeit meine Transformationsdatei zu ändern so dass ich am Anfang der Ausgangsdatei xsl:stylesheet anstatt xsldig:stylesheet direkt erhalte (also als Ausgang datei (output)eine normale xsl datei)??(gewünschte Ausgang)
Deine Probleme sollten sich mit dem von mir bereits genannten xsl:namespace-alias lösen lassen.
Grüße,
Thomas