init Bego
This commit is contained in:
BIN
FlexFlow/FFTester.dll
Normal file
BIN
FlexFlow/FFTester.dll
Normal file
Binary file not shown.
44
FlexFlow/FFTester.ini
Normal file
44
FlexFlow/FFTester.ini
Normal file
@@ -0,0 +1,44 @@
|
||||
[Database]
|
||||
Server=
|
||||
database=
|
||||
user=
|
||||
PWD=
|
||||
timeout=300
|
||||
|
||||
[STATION]
|
||||
STATION=
|
||||
--
|
||||
|
||||
[Log]
|
||||
Level=2
|
||||
|
||||
[XML]
|
||||
schemaFilename= FTSRes-v1.4.xsd
|
||||
xslfilename= FTSRes-v1.4.xsl
|
||||
targetURN=http://www.flextronics.com/fts/sfs/res
|
||||
|
||||
--xslfilename=FFTester.xsl
|
||||
--schemaFilename=SaveResult.xsd
|
||||
--targetURN=urn:SaveResult-schema
|
||||
|
||||
--xslfilename=FFTesterMOT.xsl
|
||||
--schemaFilename=SaveResultMOT.xsd
|
||||
--targetURN=urn:SaveResult-schema
|
||||
|
||||
|
||||
--Below setting are for 1.x
|
||||
[ERROR]
|
||||
--put yes/no for this flag
|
||||
ResendOnNetErr=yes
|
||||
|
||||
[SERIALNUMBER]
|
||||
SaveAsTempSN=ESN
|
||||
|
||||
|
||||
[CUSTOMIZATION]
|
||||
SPToGetUnitInfo =
|
||||
SPToSaveTestResult =
|
||||
SPToGetProductStructure =
|
||||
SPToGenericFunction =
|
||||
|
||||
[GENERICFUNCTIONSMAPPING]
|
||||
189
FlexFlow/FTSRes-v1.4.xsd
Normal file
189
FlexFlow/FTSRes-v1.4.xsd
Normal file
@@ -0,0 +1,189 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
version="1.4"
|
||||
>
|
||||
|
||||
<xs:complexType name="ExtraType">
|
||||
<xs:anyAttribute namespace="##any" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="nonNegativeDecimal">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="LoopIndexType">
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:minInclusive value="-1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="UUTStatusType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Passed"/>
|
||||
<xs:enumeration value="Failed"/>
|
||||
<xs:enumeration value="Terminated"/>
|
||||
<xs:enumeration value="Aborted"/>
|
||||
<xs:enumeration value="Error"/>
|
||||
<xs:enumeration value="Done"/>
|
||||
<xs:enumeration value="Skipped"/>
|
||||
<xs:enumeration value="Intermediate"/>
|
||||
<xs:enumeration value="Planned"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="TestStatusType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Passed"/>
|
||||
<xs:enumeration value="Failed"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="RulesType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="EQ"/>
|
||||
<xs:enumeration value="NE"/>
|
||||
<xs:enumeration value="GT"/>
|
||||
<xs:enumeration value="GE"/>
|
||||
<xs:enumeration value="LT"/>
|
||||
<xs:enumeration value="LE"/>
|
||||
<xs:enumeration value="GTLT"/>
|
||||
<xs:enumeration value="GTLE"/>
|
||||
<xs:enumeration value="GELT"/>
|
||||
<xs:enumeration value="GELE"/>
|
||||
<xs:enumeration value="MATCH"/>
|
||||
<xs:enumeration value="LOG"/>
|
||||
<xs:enumeration value="NONE"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="RunModeType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Production"/>
|
||||
<xs:enumeration value="Debug"/>
|
||||
<xs:enumeration value="Golden"/>
|
||||
<xs:enumeration value="SelfTest"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="BatchType">
|
||||
<xs:sequence>
|
||||
<xs:element name="FACTORY" type="FactoryType" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="PRODUCT" type="ProductType" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="REFS" type="RefsType" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="EXTRA" type="ExtraType" minOccurs="0"/>
|
||||
<xs:element name="PANEL" type="PanelType" minOccurs="1"/>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="TIMESTAMP" type="xs:string" use="required"/>
|
||||
<xs:attribute name="SYNTAX_REV" type="xs:string" use="required"/>
|
||||
<xs:attribute name="COMPATIBLE_REV" type="xs:string" use="required"/>
|
||||
<xs:attribute name="COMMENT" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="FactoryType">
|
||||
<xs:attribute name="NAME" type="xs:string" use="required"/>
|
||||
<xs:attribute name="LINE" type="xs:string" use="required"/>
|
||||
<xs:attribute name="TESTER" type="xs:string" use="required"/>
|
||||
<xs:attribute name="FIXTURE" type="xs:string"/>
|
||||
<xs:attribute name="SHIFT" type="xs:string"/>
|
||||
<xs:attribute name="USER" type="xs:string" use="required"/>
|
||||
<xs:attribute name="SYSTEMTYPE" type="xs:string"/>
|
||||
<xs:attribute name="TESTCATEGORY" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="ProductType">
|
||||
<xs:attribute name="NAME" type="xs:string" use="required"/>
|
||||
<xs:attribute name="REVISION" type="xs:string" use="required"/>
|
||||
<xs:attribute name="FAMILY" type="xs:string"/>
|
||||
<xs:attribute name="CUSTOMER" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="RefsType">
|
||||
<xs:attribute name="SEQ_REF" type="xs:string" use="required"/>
|
||||
<xs:attribute name="FTS_REF" type="xs:string" use="required"/>
|
||||
<xs:attribute name="APP_REF" type="xs:string"/>
|
||||
<xs:attribute name="LIM_REF" type="xs:string" use="required"/>
|
||||
<xs:attribute name="CFG_REF" type="xs:string" use="required"/>
|
||||
<xs:attribute name="CAL_REF" type="xs:string"/>
|
||||
<xs:attribute name="INSTR_REF" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="sType">
|
||||
<xs:anyAttribute namespace="##any" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="PanelType">
|
||||
<xs:sequence>
|
||||
<xs:element name="DUT" type="DutType" minOccurs="1"/>
|
||||
<xs:element name="EXTRA" type="ExtraType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="ID" type="xs:string"/>
|
||||
<xs:attribute name="COMMENT" type="xs:string"/>
|
||||
<xs:attribute name="RUNMODE" type="RunModeType" use="required"/>
|
||||
<xs:attribute name="TIMESTAMP" type="xs:string" use="required"/>
|
||||
<xs:attribute name="TESTTIME" type="nonNegativeDecimal" use="required"/>
|
||||
<xs:attribute name="WAITTIME" type="nonNegativeDecimal" use="required"/>
|
||||
<xs:attribute name="STATUS" type="UUTStatusType" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="DutType">
|
||||
<xs:sequence>
|
||||
<xs:element name="GROUP" type="GroupType" minOccurs="0"/>
|
||||
<xs:element name="EXTRA" type="ExtraType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="ID" type="xs:string" use="required"/>
|
||||
<xs:attribute name="COMMENT" type="xs:string" use="required"/>
|
||||
<xs:attribute name="PANEL" type="xs:nonNegativeInteger"/>
|
||||
<xs:attribute name="SOCKET" type="xs:nonNegativeInteger" use="required"/>
|
||||
<xs:attribute name="TIMESTAMP" type="xs:string" use="required"/>
|
||||
<xs:attribute name="TESTTIME" type="nonNegativeDecimal" use="required"/>
|
||||
<xs:attribute name="STATUS" type="UUTStatusType" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Trick to allow GROUP and TEST element appear in random order
|
||||
http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_simpleContent_st5.html
|
||||
-->
|
||||
<xs:complexType name="GroupType" mixed="false">
|
||||
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="GROUP" type="GroupType" minOccurs="0"/>
|
||||
<xs:element name="TEST" type="TestType" minOccurs="0"/>
|
||||
<xs:element name="EXTRA" type="ExtraType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
|
||||
|
||||
<xs:attribute name="NAME" type="xs:string" use="required"/>
|
||||
<xs:attribute name="DESCRIPTION" type="xs:string"/>
|
||||
<xs:attribute name="STEPGROUP" type="xs:string"/>
|
||||
<xs:attribute name="GROUPINDEX" type="xs:nonNegativeInteger" use="required"/>
|
||||
<xs:attribute name="LOOPINDEX" type="LoopIndexType" use="required"/>
|
||||
<xs:attribute name="TYPE" type="xs:string" use="required"/>
|
||||
<xs:attribute name="RESOURCE" type="xs:string"/>
|
||||
<xs:attribute name="MODULETIME" type="nonNegativeDecimal" use="required"/>
|
||||
<xs:attribute name="TOTALTIME" type="nonNegativeDecimal" use="required"/>
|
||||
<xs:attribute name="TIMESTAMP" type="xs:string" use="required"/>
|
||||
<xs:attribute name="STATUS" type="UUTStatusType" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="TestType">
|
||||
<xs:attribute name="NAME" type="xs:string" use="required"/>
|
||||
<xs:attribute name="DESCRIPTION" type="xs:string"/>
|
||||
<xs:attribute name="UNIT" type="xs:string" use="required"/>
|
||||
<xs:attribute name="VALUE" type="xs:string" use="required"/>
|
||||
<xs:attribute name="HILIM" type="xs:string" use="required"/>
|
||||
<xs:attribute name="LOLIM" type="xs:string" use="required"/>
|
||||
<xs:attribute name="STATUS" type="TestStatusType" use="required"/>
|
||||
<xs:attribute name="RULE" type="RulesType" use="required"/>
|
||||
<xs:attribute name="TARGET" type="xs:string"/>
|
||||
<xs:attribute name="DATATYPE" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="BATCH" type="BatchType"/>
|
||||
|
||||
</xs:schema>
|
||||
365
FlexFlow/FTSRes-v1.4.xsl
Normal file
365
FlexFlow/FTSRes-v1.4.xsl
Normal file
@@ -0,0 +1,365 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:transform
|
||||
xmlns:res="http://www.flextronics.com/fts/sfs/res"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:ms="urn:schemas-microsoft-com:xslt"
|
||||
xmlns:flex="urn:schemas-flextronics-com:xslt"
|
||||
version="1.0">
|
||||
|
||||
<xsl:output method="xml" version="1.0" encoding="utf-8"/>
|
||||
|
||||
<ms:script language="JScript" implements-prefix="flex">
|
||||
<![CDATA[
|
||||
var groupID=1;
|
||||
var dutID=1;
|
||||
var panelID
|
||||
function getGroupID() {return groupID++; }
|
||||
function getDUTID() {return dutID++; }
|
||||
]]>
|
||||
</ms:script>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:element name="FLEXFLOW">
|
||||
<xsl:apply-templates select="res:BATCH | BATCH" />
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="res:BATCH | BATCH">
|
||||
<xsl:apply-templates select="res:FACTORY | FACTORY" />
|
||||
<xsl:apply-templates select="res:REFS | REFS" />
|
||||
<xsl:apply-templates select="res:PANEL | PANEL" />
|
||||
|
||||
<xsl:for-each select="res:EXTRA | EXTRA">
|
||||
<xsl:call-template name="parseEXTRA">
|
||||
<xsl:with-param name="WhatFor">BATCH</xsl:with-param>
|
||||
<xsl:with-param name="ParentID"></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="res:FACTORY | FACTORY">
|
||||
<xsl:element name="FACTORY">
|
||||
<xsl:attribute name="NAME">
|
||||
<xsl:value-of select="@NAME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TESTER">
|
||||
<xsl:value-of select="@TESTER" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="FIXTURE">
|
||||
<xsl:value-of select="@FIXTURE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="USER">
|
||||
<xsl:value-of select="@USER" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="SYSTEMTYPE">
|
||||
<xsl:value-of select="@SYSTEMTYPE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TESTCATEGORY">
|
||||
<xsl:value-of select="@TESTCATEGORY" />
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<!-- 01/11/2006 -->
|
||||
<xsl:template match="res:REFS | REFS">
|
||||
<xsl:if test="boolean(string(@APP_REF)) or boolean(string(@SEQ_REF)) or boolean(string(@FTS_REF)) or boolean(string(@LIM_REF)) or boolean(string(@CFG_REF)) or boolean(string(@CAL_REF)) or boolean(string(@INSTR_REF))">
|
||||
<xsl:element name="REFS">
|
||||
<xsl:if test="boolean(string(@APP_REF))">
|
||||
<xsl:attribute name="APP_REF">
|
||||
<xsl:value-of select="@APP_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@SEQ_REF))">
|
||||
<xsl:attribute name="SEQ_REF">
|
||||
<xsl:value-of select="@SEQ_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@FTS_REF))">
|
||||
<xsl:attribute name="FTS_REF">
|
||||
<xsl:value-of select="@FTS_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@LIM_REF))">
|
||||
<xsl:attribute name="LIM_REF">
|
||||
<xsl:value-of select="@LIM_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@CFG_REF))">
|
||||
<xsl:attribute name="CFG_REF">
|
||||
<xsl:value-of select="@CFG_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@CAL_REF))">
|
||||
<xsl:attribute name="CAL_REF">
|
||||
<xsl:value-of select="@CAL_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@INSTR_REF))">
|
||||
<xsl:attribute name="INSTR_REF">
|
||||
<xsl:value-of select="@INSTR_REF" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="res:PANEL | PANEL">
|
||||
<xsl:element name="PANEL">
|
||||
<xsl:attribute name="ID">
|
||||
<xsl:value-of select="@ID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="COMMENT">
|
||||
<xsl:value-of select="@COMMENT" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="RUNMODE">
|
||||
<xsl:value-of select="@RUNMODE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TIMESTAMP">
|
||||
<xsl:value-of select="@TIMESTAMP" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TESTTIME">
|
||||
<xsl:value-of select="@TESTTIME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="WAITTIME">
|
||||
<xsl:value-of select="@WAITTIME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="STATUS">
|
||||
<xsl:value-of select="@STATUS" />
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:apply-templates select="res:DUT | DUT" />
|
||||
|
||||
<xsl:for-each select="res:EXTRA | EXTRA">
|
||||
<xsl:call-template name="parseEXTRA">
|
||||
<xsl:with-param name="WhatFor">PANEL</xsl:with-param>
|
||||
<xsl:with-param name="ParentID"></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="res:DUT | DUT">
|
||||
<xsl:variable name="UID" select="flex:getDUTID()" />
|
||||
<xsl:element name="DUT">
|
||||
<xsl:attribute name="ID">
|
||||
<xsl:value-of select="@ID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="UID">
|
||||
<xsl:value-of select="$UID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="STATUS">
|
||||
<xsl:value-of select="@STATUS" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TIMESTAMP">
|
||||
<xsl:value-of select="@TIMESTAMP" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TESTTIME">
|
||||
<xsl:value-of select="@TESTTIME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="PANELIDX">
|
||||
<xsl:value-of select="@PANEL" /> <!--PANEL_POS -->
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="SOCKET">
|
||||
<xsl:value-of select="@SOCKET" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="COMMENT">
|
||||
<xsl:value-of select="@COMMENT" />
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:for-each select='res:GROUP | GROUP'>
|
||||
<xsl:call-template name="parseGroup">
|
||||
<xsl:with-param name="dutID"><xsl:value-of select="$UID"/></xsl:with-param>
|
||||
<xsl:with-param name="parentID" />
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="res:EXTRA | EXTRA">
|
||||
<xsl:call-template name="parseEXTRA">
|
||||
<xsl:with-param name="WhatFor">DUT</xsl:with-param>
|
||||
<xsl:with-param name="ParentID"><xsl:value-of select="$UID"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="parseGroup">
|
||||
<xsl:param name="dutID" />
|
||||
<xsl:param name="parentID" />
|
||||
<xsl:choose>
|
||||
<xsl:when test='name()="GROUP"'>
|
||||
<xsl:variable name="UID" select="flex:getGroupID()" />
|
||||
<xsl:element name="GROUP">
|
||||
<xsl:attribute name="UID">
|
||||
<xsl:value-of select="$UID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="DUT">
|
||||
<xsl:value-of select="$dutID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name ="PARENT">
|
||||
<xsl:value-of select="$parentID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name ="DESCR">
|
||||
<xsl:value-of select="@DESCRIPTION" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="NAME">
|
||||
<xsl:value-of select="@NAME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="STEPGROUP">
|
||||
<xsl:value-of select="@STEPGROUP" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="GROUPIDX">
|
||||
<xsl:value-of select="@GROUPINDEX" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="LOOPIDX">
|
||||
<xsl:value-of select="@LOOPINDEX" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TYPE">
|
||||
<xsl:value-of select="@TYPE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="RESOURCE">
|
||||
<xsl:value-of select="@RESOURCE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="MODULETIME">
|
||||
<xsl:value-of select="@MODULETIME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TOTALTIME">
|
||||
<xsl:value-of select="@TOTALTIME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TIMESTAMP">
|
||||
<xsl:value-of select="@TIMESTAMP" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="STATUS">
|
||||
<xsl:value-of select="@STATUS" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="COMMENT">
|
||||
<xsl:value-of select="@COMMENT" />
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:for-each select="res:TEST | TEST">
|
||||
<xsl:call-template name="parseTest">
|
||||
<xsl:with-param name="dutID"><xsl:value-of select="$dutID"/></xsl:with-param>
|
||||
<xsl:with-param name="groupID"><xsl:value-of select="$UID"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="res:EXTRA | EXTRA">
|
||||
<xsl:call-template name="parseEXTRA">
|
||||
<xsl:with-param name="WhatFor">GROUP</xsl:with-param>
|
||||
<xsl:with-param name="ParentID"><xsl:value-of select="$UID"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select='res:GROUP | GROUP'>
|
||||
<xsl:call-template name="parseGroup">
|
||||
<xsl:with-param name="dutID"><xsl:value-of select="$dutID"/></xsl:with-param>
|
||||
<xsl:with-param name="parentID"><xsl:value-of select="$UID"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="parseTest">
|
||||
<xsl:param name="dutID" />
|
||||
<xsl:param name="groupID" />
|
||||
<xsl:choose>
|
||||
<xsl:when test='name()="TEST"'>
|
||||
<xsl:element name="TEST">
|
||||
<xsl:attribute name="NAME">
|
||||
<xsl:value-of select="@NAME" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="DUT">
|
||||
<xsl:value-of select="$dutID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="GROUP">
|
||||
<xsl:value-of select="$groupID" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="STATUS">
|
||||
<xsl:value-of select="@STATUS" />
|
||||
</xsl:attribute>
|
||||
<xsl:if test="boolean(string(@DESCRIPTION))">
|
||||
<xsl:attribute name="DESCRIPTION">
|
||||
<xsl:choose> <!--06/02/2006 -->
|
||||
<xsl:when test="boolean(string(@DESCRIPTION))">
|
||||
<xsl:value-of select="@DESCRIPTION" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@NAME" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@HILIM))">
|
||||
<xsl:attribute name="HILIM">
|
||||
<xsl:value-of select="@HILIM" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(string(@LOLIM))">
|
||||
<xsl:attribute name="LOLIM">
|
||||
<xsl:value-of select="@LOLIM" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:attribute name="UNIT">
|
||||
<xsl:value-of select="@UNIT" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="VALUE">
|
||||
<xsl:value-of select="@VALUE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="RULE">
|
||||
<xsl:value-of select="@RULE" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="TARGET">
|
||||
<xsl:value-of select="@TARGET" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="DATATYPE">
|
||||
<xsl:value-of select="@DATATYPE" />
|
||||
</xsl:attribute>
|
||||
<xsl:if test="boolean(string(@FAILURECODE))">
|
||||
<xsl:attribute name="FAILURECODE">
|
||||
<xsl:value-of select="@FAILURECODE" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="parseEXTRA">
|
||||
<xsl:param name="WhatFor" />
|
||||
<xsl:param name="ParentID" select="0" />
|
||||
<xsl:choose>
|
||||
<xsl:when test='name()="EXTRA"'>
|
||||
<xsl:for-each select="attribute::*">
|
||||
<xsl:element name="EXTRA">
|
||||
<xsl:attribute name="FOR">
|
||||
<xsl:value-of select="$WhatFor" />
|
||||
</xsl:attribute>
|
||||
<xsl:if test="boolean(string($ParentID))">
|
||||
<xsl:attribute name="PID">
|
||||
<xsl:value-of select="$ParentID" />
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:attribute name="TAG" >
|
||||
<xsl:value-of select="name()" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="VAL" >
|
||||
<xsl:value-of select="." />
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:transform>
|
||||
|
||||
<!-- update April 28 2003 Parse EXTRA -->
|
||||
<!-- update May 30, 2003 removed @LOOPINDEX=-1 when parse GROUP -->
|
||||
<!-- update 02/23/2005 added COMMENT in DUT -->
|
||||
<!-- update 02/23/2005 added res namespace for .NET API to work) -->
|
||||
<!-- update 01/18/2006 parsed REFS -->
|
||||
<!-- update 03/14/2006 added res:BATCH | BATCH so test result can be parsed in case no namespace is mentioned -->
|
||||
<!-- update 06/02/2006 returned NAME (for TEST) if DESCRIPTION is blank-->
|
||||
|
||||
Reference in New Issue
Block a user