problème de syntaxe - XML/XSL - Programmation
Marsh Posté le 02-07-2016 à 13:16:42
Citation : Ce que je veux exprimer : je dois tester si l'id du startEvent est égale à sourceRef de sequenceFlow |
Pour ceux que ça pourrait intéresser, la solution pourrait ressembler à:
Code :
|
ou bien si l'on préfère une évaluation dynamique (à priori moins optimale)
Code :
|
A+,
Marsh Posté le 07-04-2015 à 19:28:24
Bonsoir tout le monde,
alors mon problème est le suivant: je veux réaliser un XSLT pour passer d'un xml à un autre mais j'ai un problème de syntaxe
mon fichier xml initial :
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
<process id="process" isExecutable="true">
<startEvent id="sid-BEF2442F-5A88-4A2C-8CE7-758BD0DF22D0"/>
<userTask id="sid-615ABB5C-437B-490F-9D80-A7105D034CD3"/>
<sequenceFlow id="sid-06902D8E-B3FD-45C7-BFEC-08306D7CB087" sourceRef="sid-BEF2442F-5A88-4A2C-8CE7-758BD0DF22D0" targetRef="sid-615ABB5C-437B-490F-9D80-A7105D034CD3"/>
<userTask id="sid-57B833D8-D076-46D3-B1B9-58BF917B5186"/>
<sequenceFlow id="sid-FC61B8CB-B40C-4B37-BF0E-0811B72DF0CB" sourceRef="sid-615ABB5C-437B-490F-9D80-A7105D034CD3" targetRef="sid-57B833D8-D076-46D3-B1B9-58BF917B5186"/>
<endEvent id="sid-70E2DB5F-5799-4A57-8D06-9EFD3CD5EC4E"/>
<sequenceFlow id="sid-D18F8537-03B2-4CA1-8F53-13E80EF0C699" sourceRef="sid-57B833D8-D076-46D3-B1B9-58BF917B5186" targetRef="sid-70E2DB5F-5799-4A57-8D06-9EFD3CD5EC4E"/>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_process">
<bpmndi:BPMNPlane bpmnElement="process" id="BPMNPlane_process">
<bpmndi:BPMNShape bpmnElement="sid-BEF2442F-5A88-4A2C-8CE7-758BD0DF22D0" id="BPMNShape_sid-BEF2442F-5A88-4A2C-8CE7-758BD0DF22D0">
<omgdc:Bounds height="30.0" width="30.0" x="122.5" y="111.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-615ABB5C-437B-490F-9D80-A7105D034CD3" id="BPMNShape_sid-615ABB5C-437B-490F-9D80-A7105D034CD3">
<omgdc:Bounds height="80.0" width="100.0" x="197.5" y="86.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-57B833D8-D076-46D3-B1B9-58BF917B5186" id="BPMNShape_sid-57B833D8-D076-46D3-B1B9-58BF917B5186">
<omgdc:Bounds height="80.0" width="100.0" x="342.5" y="86.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-70E2DB5F-5799-4A57-8D06-9EFD3CD5EC4E" id="BPMNShape_sid-70E2DB5F-5799-4A57-8D06-9EFD3CD5EC4E">
<omgdc:Bounds height="28.0" width="28.0" x="487.5" y="112.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-FC61B8CB-B40C-4B37-BF0E-0811B72DF0CB" id="BPMNEdge_sid-FC61B8CB-B40C-4B37-BF0E-0811B72DF0CB">
<omgdi:waypoint x="297.5" y="126.0"/>
<omgdi:waypoint x="342.5" y="126.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-06902D8E-B3FD-45C7-BFEC-08306D7CB087" id="BPMNEdge_sid-06902D8E-B3FD-45C7-BFEC-08306D7CB087">
<omgdi:waypoint x="152.5" y="126.0"/>
<omgdi:waypoint x="197.5" y="126.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-D18F8537-03B2-4CA1-8F53-13E80EF0C699" id="BPMNEdge_sid-D18F8537-03B2-4CA1-8F53-13E80EF0C699">
<omgdi:waypoint x="442.5" y="126.0"/>
<omgdi:waypoint x="487.5" y="126.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
quant à mon xslt :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:drools="http://www.jboss.org/drools"
xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns="urn:jbpm.org:jpdl-3.2">
<xsl:template match="bpmn:startevent">
<start-state>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
</start-state>
</xsl:template>
<xsl:if test="startEvent/@id=sequenceFlow/@sourceRef">
<xsl:template match="bpmn:sequenceFlow">
<transition>
<xsl:attribute name = "name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="id">
<xsl:value-of select="translate(@name,' ','_')"/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select="@targetRef"/>
</xsl:attribute>
</transition>
</xsl:template>
</xsl:if>
</xsl:stylesheet>
mais ce code ne marche pas mlheureusement
Ce que je veux exprimer : je dois tester si l'id du startEvent est égale à sourceRef de sequenceFlow si oui dans ce cas je vais afficher la transition dans mon nouveau xml
svp aidez moiiiii