diff --git a/Build/Packaging.targets b/Build/Packaging.targets index 2d57de687171b089a23d2c62c046e1f6256b4742..8e783fb915289d497bf85886d174efef7918a9b7 100644 --- a/Build/Packaging.targets +++ b/Build/Packaging.targets @@ -66,7 +66,7 @@ <VectoXMLExamples Include="$(SolutionDir)VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\*-sample.xml"/> <UserManual Include="$(SolutionDir)Documentation\User Manual\help.html"/> <UserManual Include="$(SolutionDir)Documentation\VectoHashingTool\HashingToolHelp.html"/> - <UserManual Include="$(SolutionDir)Documentation\XML\*.pdf"/> + <UserManual Include="$(SolutionDir)Documentation\XML\*.png"/> <UserManual Include="$(SolutionDir)Documentation\XML\VectoParameters.html"/> <UserManual Include="$(SolutionDir)Documentation\User Manual Source\JIRA Quick Start Guide.pdf"/> <UserManual Include="$(SolutionDir)Documentation\Cdv_Generator_VECTO3.2.xlsx"/> diff --git a/Documentation/XML/CustomerInformation.0.7.png b/Documentation/XML/CustomerInformation.0.7.png new file mode 100644 index 0000000000000000000000000000000000000000..98e0cad39bfb2da1351db668d01bb659b6bb7ddc Binary files /dev/null and b/Documentation/XML/CustomerInformation.0.7.png differ diff --git a/Documentation/XML/ManufacturerRecord.0.7.png b/Documentation/XML/ManufacturerRecord.0.7.png new file mode 100644 index 0000000000000000000000000000000000000000..91158b0d55358852e339fd8755f55d51ec87eb43 Binary files /dev/null and b/Documentation/XML/ManufacturerRecord.0.7.png differ diff --git a/Documentation/XML/MonitoringReport.0.7.png b/Documentation/XML/MonitoringReport.0.7.png new file mode 100644 index 0000000000000000000000000000000000000000..810eafd3d7ed7754017041ab2c233c595b9c49db Binary files /dev/null and b/Documentation/XML/MonitoringReport.0.7.png differ diff --git a/Documentation/XML/RenderTable.xslt b/Documentation/XML/RenderTable.xslt new file mode 100644 index 0000000000000000000000000000000000000000..1a36d0e56d1015c5263a0025e66a25dfee2442e2 --- /dev/null +++ b/Documentation/XML/RenderTable.xslt @@ -0,0 +1,625 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?altova_samplexml ..\..\VectoCore\VectoCore\Resources\XSD\VectoDefinitions.xsd?> +<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vecto="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:fn="http://www.w3.org/2005/xpath-functions"> + <xsl:output method="html" omit-xml-declaration="yes" encoding="utf-8" indent="yes"/> + <xsl:param name="pSortingValues" select="'Job,Vehicle,Engine,Gearbox,TorqueConverter,Angulargear,Retarder,Axlegear,Axle,Wheels,Auxiliaries,ADAS,Driver,DrivingCycle'"/> + <xsl:variable name="vSortingValues" select="concat(',', $pSortingValues, ',')"/> + <!-- + +Basic functionality: + the function 'vecto:GetParameters' recursively traverses all elements, starting from the root and builds a tree according to the xml structure. + this tree looks as follows: + + (example seee at the end) + + <childnodes> + <child name="/ElementName/"> + /reference to the actual element in the XSD - xs:element/ + <type> + /reference to the actual type of this element - xs:complexType or xs:simpleType/ + /contains vectoParameterDefinition/ + </type> + <childnodes> + .... + </childnodes> + </child> + </childnodes> + + for a correct mapping of the input parameter (element) and the documentation (xs:simpleType) the input parameter has to be annotated with the parameter number + the xs:simpleType has to contain a vectoParam:description block with all required elements + + this tree is built for engineering mode, declaration mode, and components (declaration mode) separately + + ### Match the whole document ### + +--> + <xsl:template match="/"> + <!-- set variables used later --> + <xsl:variable name="maxParamNumber"> + <xsl:call-template name="maximun"> + <xsl:with-param name="list" select="document(//@schemaLocation)//xs:simpleType//xs:appinfo/vecto:description/vecto:parameterId"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="dateTimeNow"> + <xsl:value-of select="current-dateTime()"/> + </xsl:variable> + <xsl:variable name="engineeringRoot" select="document(//@schemaLocation)//xs:complexType[@name='VectoJobEngineeringType']"/> + <xsl:variable name="declarationRoot" select="document(//@schemaLocation)//xs:complexType[@name='VectoDeclarationJobType']"/> + <xsl:variable name="componentRoot" select="document(//@schemaLocation)//xs:element[@name='VectoInputDeclaration']/xs:complexType"/> + <xsl:variable name="engineeringParams" select="vecto:GetParameters($engineeringRoot, document(//@schemaLocation))"/> + <xsl:variable name="declarationParams" select="vecto:GetParameters($declarationRoot, document(//@schemaLocation))"/> + <xsl:variable name="componentParams" select="vecto:GetParameters($componentRoot, document(//@schemaLocation))"/> + <!-- HTML output --> + <xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text> + <html> + <head> + <title>Vecto Input Parameters</title> + <script src="https://code.jquery.com/jquery-3.2.1.min.js"/> + <style type="text/css"> + <xsl:copy-of select="document('style.css')"/> + </style> + </head> + <body> + <h1>Vecto Input Parameters</h1> + <div class="schemaVersion">Schema Version: <xsl:value-of select="document(//@schemaLocation)//xs:schema/@version"/> + </div> + <div class="generated">Generated: <xsl:value-of select="format-dateTime($dateTimeNow, '[D01].[M01].[Y0001] [H]:[m]')"/> + </div> + <div class="nextParameter">Next free parameter: <xsl:value-of select="sum($maxParamNumber + 1)"/> + </div> + <table border="1" class="parameters"> + <thead> + <tr> + <th class="parameterId">Param ID</th> + <th class="component">Component</th> + <th class="name">Name</th> + <th class="type">Type</th> + <th class="unit">Unit</th> + <th class="range">Range</th> + <th class="genericValues">Generic Values</th> + <th class="xmlpath">XML Path</th> + <th class="xmltype">XML Type</th> + <th class="comment">Definition</th> + </tr> + </thead> + <tbody> + <xsl:call-template name="RenderTableRows"> + <xsl:with-param name="document" select="document(//@schemaLocation)"/> + <xsl:with-param name="declarationParams" select="$declarationParams"/> + <xsl:with-param name="componentParams" select="$componentParams"/> + <xsl:with-param name="engineeringParams" select="$engineeringParams"/> + </xsl:call-template> + </tbody> + </table> + <xsl:call-template name="RenderLegend"/> + </body> + <script> + <xsl:value-of select="fn:unparsed-text('custom.js')" disable-output-escaping="yes"/> + </script> + </html> + </xsl:template> + <!-- + + #### END WHOLE DOCUMENT ### + +--> + <xsl:template name="RenderTableRows"> + <xsl:param name="document"/> + <xsl:param name="declarationParams"/> + <xsl:param name="componentParams"/> + <xsl:param name="engineeringParams"/> + <xsl:for-each select="Q{http://www.altova.com/xslt-extensions}distinct-nodes(($declarationParams|$engineeringParams)//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())])"> + <xsl:sort data-type="number" select="string-length(substring-before($vSortingValues,concat(',',@component,',')))"/> + <xsl:sort data-type="number" select="text()"/> + <xsl:call-template name="RenderParam"> + <xsl:with-param name="mergedDocuments" select="$document"/> + <xsl:with-param name="declarationParams" select="$declarationParams"/> + <xsl:with-param name="componentParams" select="$componentParams"/> + <xsl:with-param name="engineeringParams" select="$engineeringParams"/> + </xsl:call-template> + </xsl:for-each> + </xsl:template> + <!-- + +========================= +--> + <xsl:template name="RenderParam"> + <xsl:param name="mergedDocuments"/> + <xsl:param name="declarationParams"/> + <xsl:param name="componentParams"/> + <xsl:param name="engineeringParams"/> + <xsl:for-each select="."> + <xsl:apply-templates select="."> + <xsl:with-param name="mergedDocuments" select="$mergedDocuments"/> + <xsl:with-param name="declarationParams" select="$declarationParams"/> + <xsl:with-param name="componentParams" select="$componentParams"/> + <xsl:with-param name="engineeringParams" select="$engineeringParams"/> + </xsl:apply-templates> + </xsl:for-each> + </xsl:template> + <!-- + +========================= +--> + <xsl:template match="vecto:parameterId"> + <xsl:param name="mergedDocuments"/> + <xsl:param name="declarationParams"/> + <xsl:param name="componentParams"/> + <xsl:param name="engineeringParams"/> + <xsl:param name="xmlTreeNode"/> + <xsl:variable name="paramTypeName" select="./ancestor::xs:simpleType/@name"/> + <xsl:variable name="paramValue" select="text()"/> + + <xsl:call-template name="RenderSingleRow"> + <xsl:with-param name="mergedDocuments" select="$mergedDocuments"/> + <xsl:with-param name="declarationParams" select="$declarationParams"/> + <xsl:with-param name="componentParams" select="$componentParams"/> + <xsl:with-param name="engineeringParams" select="$engineeringParams"/> + </xsl:call-template> + + </xsl:template> + <!-- + +========================= +--> + <xsl:template name="RenderSingleRow"> + <xsl:param name="mergedDocuments"/> + <xsl:param name="declarationParams"/> + <xsl:param name="componentParams"/> + <xsl:param name="engineeringParams"/> + <xsl:variable name="paramNbr" select="./text()"/> + <xsl:variable name="declarationInstance" select="$declarationParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/> + <xsl:variable name="componentInstance" select="$componentParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/> + <xsl:variable name="engineeringInstance" select="$engineeringParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/> + <tr> + <xsl:variable name="cssClass" select="../@status | vecto:ContainsParameter($declarationInstance, 'Declaration ') | vecto:ContainsParameter($engineeringInstance, 'Engineering ')"/> + <xsl:if test="$cssClass"> + <xsl:attribute name="class"><xsl:value-of select="$cssClass" separator=" "/></xsl:attribute> + </xsl:if> + <td class="parameterId"> + <xsl:value-of select="format-number(., 'P000')"/> + </td> + <td class="component"> + <xsl:value-of select="@component"/> + </td> + <td class="name"> + <xsl:variable name="elementName" select="fn:distinct-values(($declarationInstance|$engineeringInstance)/ancestor::child[1]/@nodeName)"/> + <xsl:choose> + <xsl:when test="count($elementName) eq 1"> + <xsl:value-of select="$elementName"/> + </xsl:when> + <xsl:otherwise> + <div class="declaration"> + <xsl:value-of select="$declarationInstance/ancestor::child[1]/@nodeName"/> + </div> + <div class="engineering"> + <xsl:value-of select="$engineeringInstance/ancestor::child[1]/@nodeName"/> + </div> + </xsl:otherwise> + </xsl:choose> + <!--xsl:if test="not($xsdInstance/@name)"> + <xsl:value-of select="./@usage"/> + </xsl:if--> + </td> + <!--<td class="description"/>--> + <td class="type"> + <xsl:value-of select="substring-after(./ancestor::xs:simpleType/xs:restriction/@base, ':')"/> + </td> + <td class="unit">[<xsl:value-of select="../vecto:unit"/>]</td> + <xsl:call-template name="ParameterRange"/> + <td class="genericValues"> + <span> + <xsl:value-of select="../vecto:genericValueType"/> + </span> + <xsl:if test="../vecto:genericValueSource"> (<span> + <xsl:value-of select="../vecto:genericValueSource"/>)</span> + </xsl:if> + </td> + <td class="xmlpath"> + <xsl:attribute name="sorting"><xsl:call-template name="RenderXPathOrder"><xsl:with-param name="xpath" select="vecto:GetXMLPath($declarationInstance/ancestor::child[1]/*[1])"/></xsl:call-template></xsl:attribute> + <xsl:if test="$declarationInstance/ancestor::child[1]/*[1]"> + <div class="declaration"> + <span class="element">VectoInputDeclaration</span> + <xsl:call-template name="RenderXPath"> + <xsl:with-param name="xpath" select="vecto:GetXMLPath($declarationInstance/ancestor::child[1]/*[1])"/> + </xsl:call-template> + </div> + </xsl:if> + <xsl:if test="$componentInstance/ancestor::child[1]/*[1]"> + <div class="declaration component"> + <span class="element">VectoInputDeclaration</span> + <xsl:call-template name="RenderXPath"> + <xsl:with-param name="xpath" select="vecto:GetXMLPath($componentInstance/ancestor::child[1]/*[1])"/> + </xsl:call-template> + </div> + </xsl:if> + <div class="engineering"> + <xsl:for-each select="$engineeringInstance"> + <div> + <span class="element"> + <xsl:choose> + <xsl:when test="./ancestor::child[xs:element/@name='Vehicle']">VectoInputEngineering</xsl:when> + <xsl:otherwise>VectoComponentEngineering</xsl:otherwise> + </xsl:choose> + </span> + <xsl:call-template name="RenderXPath"> + <xsl:with-param name="xpath" select="vecto:GetXMLPath(./ancestor::child[1]/*[1])"/> + </xsl:call-template> + </div> + </xsl:for-each> + </div> + </td> + <td class="xmltype"> + <xsl:value-of select="$declarationInstance/ancestor::child[1]/*[1]/@type"/> + </td> + <td class="comment"> + <xsl:if test="@status = 'deprecated'">DEPRECATED<br/> + </xsl:if> + <xsl:call-template name="GetEnumerationValues"> + <xsl:with-param name="declarationInstance" select="$declarationInstance"/> + <xsl:with-param name="engineeringInstance" select="$engineeringInstance"/> + </xsl:call-template> + <xsl:value-of select="../vecto:comment"/> + <!--<xsl:if test="$xsdInstance[@minOccurs=0]"><span class="optional">optional</span></xsl:if>--> + <xsl:if test="($declarationInstance)/ancestor::child[1]/(xs:element|xs:attribute)[@minOccurs=0]"> + <span class="optionalDeclaration">optional in Declaration mode</span> + </xsl:if> + <xsl:if test="($engineeringInstance)/ancestor::child[1]/(xs:element|xs:attribute)[@minOccurs=0]"> + <span class="optionalEngineering">optional in Engineering mode</span> + </xsl:if> + + </td> + </tr> + </xsl:template> + <!-- + +========================= +--> + <xsl:template name="GetEnumerationValues"> + <xsl:param name="declarationInstance"/> + <xsl:param name="engineeringInstance"/> + <xsl:if test="count(($declarationInstance|$engineeringInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0"> + <div class="declaration"> + <xsl:if test="count(($declarationInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0"> + Allowed values: <xsl:for-each select="$declarationInstance/ancestor::child[1]/type//xs:restriction/xs:enumeration"> + <span class="enumEntry">"<xsl:value-of select="@value"/>"</span> + <xsl:if test="position() != last()">, </xsl:if> + </xsl:for-each> + </xsl:if> + </div> + <div class="engineering"> + <xsl:if test="count(($engineeringInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0"> + Allowed values: <xsl:for-each select="$engineeringInstance/ancestor::child[1]/type//xs:restriction/xs:enumeration"> + <span class="enumEntry">"<xsl:value-of select="@value"/>"</span> + <xsl:if test="position() != last()">, </xsl:if> + </xsl:for-each> + </xsl:if> + </div> + <br/> + </xsl:if> + </xsl:template> + <!-- + +========================= +--> + <xsl:template name="ParameterRange"> + <xsl:variable name="restriction" select="../../../../xs:restriction[@base='xs:double' or @base='xs:int' or fn:starts-with(@base, 'tns:Double')]"/> + <td class="range"> + <xsl:choose> + <xsl:when test="boolean($restriction/xs:minInclusive/@value)"> + ≥ <xsl:value-of select="$restriction/xs:minInclusive/@value"/> + <xsl:call-template name="RenderUnit"/> + </xsl:when> + <xsl:when test="boolean($restriction/xs:minExclusive/@value)"> + > <xsl:value-of select="$restriction/xs:minExclusive/@value"/> + <xsl:call-template name="RenderUnit"/> + </xsl:when> + <xsl:otherwise/> + </xsl:choose> + <xsl:choose> + <xsl:when test="boolean($restriction/xs:maxInclusive/@value)"> + ≤ <xsl:value-of select="$restriction/xs:maxInclusive/@value"/> + <xsl:call-template name="RenderUnit"/> + </xsl:when> + <xsl:when test="boolean($restriction/xs:maxExclusive/@value)"> + < <xsl:value-of select="$restriction/xs:maxExclusive/@value"/> + <xsl:call-template name="RenderUnit"/> + </xsl:when> + <xsl:otherwise/> + </xsl:choose> + </td> + </xsl:template> + <!-- + +========================= +--> + <xsl:template name="RenderUnit"> + <xsl:if test="not(../vecto:unit = '-')"> + <span class="unit"> + <xsl:value-of select="../vecto:unit"/> + </span> + </xsl:if> + </xsl:template> + <xsl:template name="maximun"> + <xsl:param name="list"/> + <xsl:for-each select="$list"> + <xsl:sort select="." data-type="number" order="descending"/> + <xsl:if test="position()=1"> + <xsl:value-of select="."/> + </xsl:if> + </xsl:for-each> + </xsl:template> + <xsl:template name="RenderLegend"> + <div class="legend"> + <div class="Declaration"> + <span class="marker"/> Used only in Declaration mode</div> + <div class="Declaration Engineering"> + <span class="marker"/> Used in Declaration and Engineering mode</div> + <div class="Engineering"> + <span class="marker"/> Used only in Engineering Mode</div> + </div> + </xsl:template> + <xsl:template name="RenderXPath"> + <xsl:param name="xpath"/> + <xsl:for-each select="$xpath"> + <span> + <xsl:attribute name="class"><xsl:value-of select="@type"/></xsl:attribute> + <xsl:value-of select="text()"/> + </span> + </xsl:for-each> + </xsl:template> + <xsl:template name="RenderXPathOrder"> + <xsl:param name="xpath"/> + <xsl:for-each select="$xpath"> + <xsl:value-of select="format-number(./@position, '00')"/>#</xsl:for-each> + </xsl:template> + <!-- + ###### FUNCTIONS ####### + --> + <xsl:function name="vecto:GetParameters"> + <xsl:param name="rootNode"/> + <xsl:param name="mergedDocuments"/> + <xsl:variable name="nodes" select="vecto:GetContainingElements($rootNode,$mergedDocuments)"/> + <xsl:element name="childNodes"> + <xsl:for-each select="$nodes"> + <xsl:element name="child"> + <xsl:attribute name="nodeName" select="@name"/> + <xsl:variable name="childType" select="vecto:GetTypeForElement(., $mergedDocuments)"/> + <xsl:sequence select="."/> + <xsl:element name="type"> + <xsl:sequence select="$childType"/> + </xsl:element> + <xsl:if test="$childType"> + <xsl:sequence select="vecto:GetParameters($childType, $mergedDocuments)"/> + </xsl:if> + </xsl:element> + </xsl:for-each> + <!--<xsl:if test="$childTypes"> + <xsl:sequence select="vecto:GetParameters( $childTypes, $mergedDocuments )"/> + </xsl:if>--> + </xsl:element> + <!--<xsl:element name="types"> + <xsl:sequence select="$mergedDocuments//xs:simpleType[@name=$nodes/@type]"/> + </xsl:element>--> + </xsl:function> + <!-- + +--> + <xsl:function name="vecto:GetContainingElements"> + <xsl:param name="node"/> + <xsl:param name="mergedDocuments"/> + <xsl:choose> + <xsl:when test="$node"> + <xsl:variable name="childElementsAttributes" select="$node/(xs:element|xs:attribute)"/> + <xsl:variable name="nestedChildElemens" select="vecto:GetContainingElements($node/(xs:sequence|xs:choice), $mergedDocuments)"/> + <xsl:variable name="derivedElements" select="vecto:GetComplexContent($node/xs:complexContent|$node/xs:complexType/xs:complexContent, $mergedDocuments)"/> + <xsl:sequence select="$childElementsAttributes|$nestedChildElemens|$derivedElements"/> + </xsl:when> + </xsl:choose> + </xsl:function> + <!-- + +--> + <xsl:function name="vecto:GetComplexContent"> + <xsl:param name="complexContent"/> + <xsl:param name="mergedDocuments"/> + <xsl:if test="$complexContent"> + <xsl:variable name="baseTypeName" select="replace($complexContent/xs:extension/@base, '([a-z]*):(.*)', '$2')"/> + <xsl:variable name="baseType" select="$mergedDocuments//(xs:complexType|xs:simpleType)[@name=$baseTypeName]"/> + <xsl:variable name="extensions" select="$complexContent/xs:extension/(xs:attribute|(xs:sequence/(xs:element|xs:attribute)))"/> + <xsl:sequence select="vecto:GetContainingElements($baseType, $mergedDocuments)|$extensions"/> + </xsl:if> + </xsl:function> + <!-- + +--> + <xsl:function name="vecto:GetTypeForElement"> + <xsl:param name="element"/> + <xsl:param name="mergedDocuments"/> + <xsl:choose> + <xsl:when test="$element"> + <xsl:variable name="typeNames" select="$element[@type]/@type"/> + <xsl:variable name="anonymousTypes" select="$element/(xs:complexType|xs:simpleType)"/> + <xsl:variable name="namedTypes" select="$mergedDocuments//(xs:complexType|xs:simpleType)[@name=replace($typeNames, '([a-z]*):(.*)', '$2')]"/> + <xsl:sequence select="$namedTypes | $anonymousTypes"/> + </xsl:when> + </xsl:choose> + </xsl:function> + <!-- + +--> + <xsl:function name="vecto:GetXMLPath"> + <xsl:param name="node"/> + <xsl:if test="$node"> + <xsl:variable name="prefix" select="vecto:GetXPathPrefix($node)"/> + <xsl:variable name="position" select="$node/ancestor-or-self::child[1]/fn:position()"/> + <xsl:sequence select="vecto:GetXMLPath($node/ancestor-or-self::child[1]/../../node())"/> + <xsl:element name="xPathEntry"> + <xsl:attribute name="type" select="$prefix"/> + <xsl:attribute name="position" select="count($node/ancestor-or-self::child[1]/preceding-sibling::*)"/> + <xsl:value-of select="$node/ancestor-or-self::child[1]/@nodeName"/> + </xsl:element> + </xsl:if> + </xsl:function> + <xsl:function name="vecto:GetXPathPrefix"> + <xsl:param name="node"/> + <xsl:choose> + <xsl:when test="$node[1]/name() = 'xs:attribute'">attribute</xsl:when> + <xsl:when test="$node[1]/name() = 'xs:element'">element</xsl:when> + <xsl:otherwise>unknown</xsl:otherwise> + </xsl:choose> + </xsl:function> + <xsl:function name="vecto:ContainsParameter"> + <xsl:param name="instance"/> + <xsl:param name="output"/> + <xsl:if test="fn:count($instance)"> + <xsl:value-of select="$output"/> + </xsl:if> + </xsl:function> + <xsl:function name="vecto:SearchParameter"> + <xsl:param name="instance"/> + <xsl:param name="parameterSet"/> + <xsl:sequence select="$parameterSet//xs:simpleType//vecto:description[vecto:parameterId=$instance]"/> + </xsl:function> +</xsl:stylesheet> + +<!-- + +################################# + +<?xml version="1.0" encoding="UTF-8"?> +<childNodes> + <child nodeName="Vehicle"> + <xs:element name="Vehicle"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="tns:VehicleDeclarationType"/> + </xs:complexContent> + </xs:complexType> + </xs:element> + <type> + <xs:complexType> + <xs:complexContent> + <xs:extension base="tns:VehicleDeclarationType"/> + </xs:complexContent> + </xs:complexType> + </type> + <childNodes> + <child nodeName="Manufacturer"> + <xs:element name="Manufacturer" type="tns:ManufacturerType"> + <xs:annotation> + <xs:documentation>P235</xs:documentation> + </xs:annotation> + </xs:element> + <type> + [...] + </type> + <childNodes/> + </child> + <child nodeName="ManufacturerAddress"> + [...] + </child> + <child nodeName="VehicleCategory"> + [...] + </child> + <child nodeName="AxleConfiguration"> + [...] + </child> + [...] + <child nodeName="Components"> + <xs:element name="Components"> + [...] + </xs:element> + <type> + [...] + </type> + <childNodes> + <child nodeName="Engine"> + <xs:element name="Engine" type="tns:EngineComponentDeclarationType"/> + <type> + [...] + </type> + <childNodes> + <child nodeName="Data"> + <xs:element name="Data" type="tns:EngineDataDeclarationType"/> + <type> + [...] + </type> + <childNodes> + <child nodeName="Displacement"> + [...] + </child> + <child nodeName="IdlingSpeed"> + <xs:element name="IdlingSpeed" type="tns:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P063 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <type> + <xs:simpleType name="EngineDeclaredSpeedType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Engine">063</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">198</vectoParam:parameterId> + <vectoParam:parameterId component="Engine">249</vectoParam:parameterId> + <vectoParam:unit>1/min</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P063, P249 - [1/min]</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:int"> + <xs:minInclusive value="400"/> + <xs:maxInclusive value="10000"/> + </xs:restriction> + </xs:simpleType> + </type> + <childNodes/> + </child> + <child nodeName="RatedSpeed"> + <xs:element name="RatedSpeed" type="tns:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P249 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <type> + <xs:simpleType name="EngineDeclaredSpeedType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Engine">063</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">198</vectoParam:parameterId> + <vectoParam:parameterId component="Engine">249</vectoParam:parameterId> + <vectoParam:unit>1/min</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P063, P249 - [1/min]</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:int"> + <xs:minInclusive value="400"/> + <xs:maxInclusive value="10000"/> + </xs:restriction> + </xs:simpleType> + </type> + <childNodes/> + </child> + + </childNodes> + </child> + <child nodeName="Signature"> + [...] + </child> + </childNodes> + </child> + <child nodeName="Gearbox"> + [...] + </child> + + </childNodes> + </child> + </childNodes> + </child> + +</childNodes> + +--> \ No newline at end of file diff --git a/Documentation/XML/VectoInput.1.0.png b/Documentation/XML/VectoInput.1.0.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf09474f4db41df70422e63fae45e56a762479a Binary files /dev/null and b/Documentation/XML/VectoInput.1.0.png differ diff --git a/Documentation/XML/VectoInputDeclaration.0.8.png b/Documentation/XML/VectoInputDeclaration.0.8.png deleted file mode 100644 index f7ff7ef87482c7c57fbbc4b3c2995913d5b6313d..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoInputDeclaration.0.8.png and /dev/null differ diff --git a/Documentation/XML/VectoInputDeclaration.1.0.pdf b/Documentation/XML/VectoInputDeclaration.1.0.pdf deleted file mode 100644 index d11d573c8390c0bcaa09120cc3a2ea77e5d0deab..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoInputDeclaration.1.0.pdf and /dev/null differ diff --git a/Documentation/XML/VectoInputDeclaration.1.0.png b/Documentation/XML/VectoInputDeclaration.1.0.png deleted file mode 100644 index 7a0079c6c67fd0e2226014b6a0809bf1a268eafa..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoInputDeclaration.1.0.png and /dev/null differ diff --git a/Documentation/XML/VectoOutputDeclaration.pdf b/Documentation/XML/VectoOutputDeclaration.pdf deleted file mode 100644 index e687d784a0f25566e5fa2cdf2ed01be556355f34..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoOutputDeclaration.pdf and /dev/null differ diff --git a/Documentation/XML/VectoOutputDeclaration.png b/Documentation/XML/VectoOutputDeclaration.png deleted file mode 100644 index fa6d494682b47e5cfdeeb86dea98e1d48952c5f9..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoOutputDeclaration.png and /dev/null differ diff --git a/Documentation/XML/VectoOutputDeclarationCOC.png b/Documentation/XML/VectoOutputDeclarationCOC.png deleted file mode 100644 index cee59cb6938e482e7699714535032a0d4700838a..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoOutputDeclarationCOC.png and /dev/null differ diff --git a/Documentation/XML/VectoOutputDeclarationCustomer.pdf b/Documentation/XML/VectoOutputDeclarationCustomer.pdf deleted file mode 100644 index 4dfb2d684faae74a2e3e1f66a15f65e3bc61613c..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoOutputDeclarationCustomer.pdf and /dev/null differ diff --git a/Documentation/XML/VectoParameters.html b/Documentation/XML/VectoParameters.html index 2633e4e22c9a9ada609a76224dd5263d2a6cdff5..2973dbb3da367311232360990d834fe76cc25235 100644 --- a/Documentation/XML/VectoParameters.html +++ b/Documentation/XML/VectoParameters.html @@ -222,7 +222,7 @@ div.filter span.hidden span.icon {max-width: 256px;max-height: 256px;background- <!--/*--></root><!--*/--></style></head><body> <h1>Vecto Input Parameters</h1> <div class="schemaVersion">Schema Version: 0.6 1.0 1.0</div> - <div class="generated">Generated: 19.12.2018 15:46</div> + <div class="generated">Generated: 03.01.2019 13:04</div> <div class="nextParameter">Next free parameter: 281</div> <table border="1" class="parameters"> <thead> diff --git a/Documentation/XML/VectoVTPReport.png b/Documentation/XML/VectoVTPReport.png deleted file mode 100644 index ba8b4c9ab5b686a1735edf08405d0c5ce769d583..0000000000000000000000000000000000000000 Binary files a/Documentation/XML/VectoVTPReport.png and /dev/null differ diff --git a/Documentation/XML/custom.js b/Documentation/XML/custom.js new file mode 100644 index 0000000000000000000000000000000000000000..950bbffd25bdd3c096c1c0dbae99e0a06c3d5696 --- /dev/null +++ b/Documentation/XML/custom.js @@ -0,0 +1,125 @@ +<!--/*--><root><![CDATA[<!--*/--> +$(document).ready(function() { + $('th.xmltype').append('<span class="expand"><a title="show XML Type"</span>').append('<span class="collapse"><a title="hide column"</span>') + $('th.xmlpath').append('<span class="expand"><a title="show XPath"</span>').append('<span class="collapse"><a title="hide column"</span>') + $('th.genericValues').append('<span class="expand"><a title="show Generic Values"</span>').append('<span class="collapse"><a title="hide column"</span>') + + $('table.parameters th span.expand').click(function(){ + var $col = $(this).parent('th').index() + $(this).parents('th').removeClass('collapsed') + $(this).parents('table').find('tr>td:nth-child('+($col+1)+')').removeClass('collapsed') + }) + $('table.parameters th span.collapse').click(function(){ + var $col = $(this).parent('th').index() + $(this).parents('th').addClass('collapsed') + $(this).parents('table').find('tr>td:nth-child('+($col+1)+')').addClass('collapsed') + }) + + + $('table.parameters th.parameterId').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>') + $('table.parameters th.component').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>') + $('table.parameters th.name').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>') + $('table.parameters th.xmlpath').append('<span class="sortAttrAsc"><a title="sort ascending"/></span><span class="sortAttrDesc"><a title="sort descending"/></span>') + + $('table.parameters th span.sortAsc').click(function(){ + var table = $(this).parents('table').eq(0) + var rows = table.find("tr:not(:has('th'))").toArray().sort(comparer($(this).parent('th').index())) + for (var i = 0; i < rows.length; i++){table.append(rows[i])} + }) + $('table.parameters th span.sortDesc').click(function(){ + var table = $(this).parents('table').eq(0) + var rows = table.find("tr:not(:has('th'))").toArray().sort(comparer($(this).parent('th').index())) + rows = rows.reverse() + for (var i = 0; i < rows.length; i++){table.append(rows[i])} + }) + $('table.parameters th span.sortAttrAsc').click(function(){ + var table = $(this).parents('table').eq(0) + var rows = table.find("tr:not(:has('th'))").toArray().sort(comparerAttr($(this).parent('th').index(), 'sorting')) + for (var i = 0; i < rows.length; i++){table.append(rows[i])} + }) + $('table.parameters th span.sortAttrDesc').click(function(){ + var table = $(this).parents('table').eq(0) + var rows = table.find("tr:not(:has('th'))").toArray().sort(comparerAttr($(this).parent('th').index(),'sorting')) + rows = rows.reverse() + for (var i = 0; i < rows.length; i++){table.append(rows[i])} + }) + function comparer(index) { + return function(a, b) { + var valA = getCellValue(a, index), valB = getCellValue(b, index) + return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB) + } + } + function comparerAttr(index, attr) { + return function(a, b) { + var valA = getCellAttrValue(a, index, attr), valB = getCellAttrValue(b, index, attr) + return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB) + } + } + function getCellValue(row, index){ return $(row).children('td').eq(index).html() } + function getCellAttrValue(row, index, attr){ return $(row).children('td').eq(index).attr(attr) } + + + $('table.parameters').before('<div class="filter"><span class="filterDecl"><span class="icon"/>Declaration</span><span class="filterEng"><span class="icon"/>Engineering</span></div>') + $('.filter .filterEng').click(function() { + if ($(this).hasClass('hidden')) { + $('table.parameters tbody tr').filter(function() { + return ($(this).hasClass('Engineering') && !$(this).hasClass('Declaration') ) || $(this).attr('class') =='hideMode' || !$(this).attr('class') + }).removeClass('hideMode') + $('table.parameters td div.engineering').removeClass('hideMode') + $('span.optionalEngineering').show(); + } else { + $('table.parameters tbody tr').filter(function() { + return ($(this).hasClass('Engineering') && !$(this).hasClass('Declaration') ) || !$(this).attr('class') + }).addClass('hideMode') + $('table.parameters td div.engineering').addClass('hideMode') + $('span.optionalEngineering').hide(); + } + $(this).toggleClass('hidden') + }) + $('.filter .filterDecl').click(function() { + if ($(this).hasClass('hidden')) { + $('table.parameters tbody tr').filter(function() { + return $(this).hasClass('Declaration') + }).removeClass('hideMode') + } else { + $('table.parameters tbody tr').filter(function() { + return $(this).hasClass('Declaration') + }).addClass('hideMode') + } + $(this).toggleClass('hidden') + }) + + var components = $('table.parameters tbody td.component').map(function(idx, el) {return $(el).html()}).toArray() + components = components.sort().filter(function(el,i,a){if(i==a.indexOf(el))return 1;return 0}) + $('table.parameters').before('<div class="filter">'+ components.map(function(c) { return '<span class="filterComp"><span class="icon"/>' + c + '</span>'}).join('') + '<span class="filterAll hidden"><span class="icon"/>Hide All</span><span class="showAll"><span class="icon"/>Show All</span>' + '</div>') + $('div.filter .filterComp').click(function() { + var searchText = $(this).text(); + if ($(this).hasClass('hidden')) { + $('table.parameters tbody tr').filter(function() { + return $(this).find('td.component').text() == searchText + }).removeClass('hideComp') + } else { + $('table.parameters tbody tr').filter(function() { + return $(this).find('td.component').text() == searchText + }).addClass('hideComp') + } + $(this).toggleClass('hidden') + }) + $('div.filter .filterAll').click(function() { + $('table.parameters tbody tr').addClass('hideComp') + $('div.filter .filterComp').addClass('hidden') + }) + $('div.filter .showAll').click(function() { + $('table.parameters tbody tr').removeClass('hideComp') + $('div.filter .filterComp').removeClass('hidden') + }) + + // initial view + $('table.parameters th span.sortAttrAsc').trigger('click') + $('div.filter span.filterEng').trigger('click') + $('th.genericValues span.collapse').trigger('click') + $('th.xmlpath span.collapse').trigger('click') + $('th.xmltype span.collapse').trigger('click') +}) + +<!--/*-->]]></root><!--*/--> \ No newline at end of file diff --git a/Documentation/XML/style.css b/Documentation/XML/style.css new file mode 100644 index 0000000000000000000000000000000000000000..4e5afbc8dd1a294e5783947a4511de7ffd0d3339 --- /dev/null +++ b/Documentation/XML/style.css @@ -0,0 +1,217 @@ +<!--/*--><root><![CDATA[<!--*/--> +body +{ + background-color: #ffffff; + color: #000000; + font-family: "Arial", sans-serif; +} + +body +{ + background-color: #ffffff; + color: #000000; + font-family: "Arial", sans-serif; + position: relative; +} + +table { + border: 1px solid black; + border-collapse: collapse; + margin: 1em 0; + position: relative; +} +tr, th { + page-break-inside: avoid; + position: relative; +} +tr th, tr td { + page-break-inside: avoid; + position: relative; +} +th { + padding: 3px 5px; + background: #000; + color: #fff; + white-space:nowrap; + position: relative; +} +td { + padding: 3px 5px; +} +td.parameterId { + text-align: center; +} +td.range { + text-align: right; + white-space: nowrap; +} +/*th.xmlpath, td.xmlpath { + display: none; +}*/ +tr.Declaration td.parameterId, div.legend .Declaration span.marker { + background: #A8FFAE; /* green */ +} +tr.Engineering td.parameterId, div.legend .Engineering span.marker { + background: #FFF6C2; /* blue */ +} +tr.Declaration.Engineering td.parameterId, div.legend .Declaration.Engineering span.marker{ + background: #C2DCFF; /* orange*/ +} +tr.deprecated, tr.deprecated td.parameterId { + background:#ccc !important; + color: #555; +} +td.unit { + text-align: center; +} +td.min, td.max { + text-align: right; + white-space: nowrap; +} +td.xmlpath { + white-space: nowrap; +} +td.genericValues span { + white-space: nowrap; +} +td.name { + text-transform: capitalize; +} +span.enumEntry { + white-space: nowrap; +} +div.nextParameter { + float: right; + text-align: right; +} +div.legend { + border: 1px solid black; + overflow: hidden; + margin: 1em 0; + padding: 7px; +} +div.legend div { + width: 33%; + float: left; +} +span.marker { + display: inline-block; + height: 1em; + width: 1em; + margin-right: 0.5em; +} +span.unit { + padding-left: 0.3em; +} +span.optionalEngineering { +background: #FFF6C2; /* blue */ +} +span.optionalDeclaration { +background: #A8FFAE; /* green */ +} +td.xmlpath span.element::before { + content: " / "; +} +td.xmlpath span.attribute::before { + content: " / @"; +} + +th span.sortAsc, +th span.sortAttrAsc { + margin-left: 3px; + cursor: pointer; + display: inline-block; + width: 16px; + height: 16px; + background-size: contain; + background-repeat: no-repeat; + text-indent: -1000em; + margin-left: 10px; +} +th span.sortDesc, +th span.sortAttrDesc, +th span.expand, +th span.collapse { + margin-left: 3px; + cursor: pointer; + display: inline-block; + width: 16px; + height: 16px; + background-size: contain; + background-repeat: no-repeat; + text-indent: -1000em; +} + +div.filter { + margin: 3px 0px; + border: 1px solid black; + display: inline-block; +} +div.filter span { + padding: 8px; + display: inline-block; + cursor: pointer; +} + +th span.collapse, +th span.expand { + position: absolute; + left: 5px; + top: 50%; + margin-top: -8px; +} + + +table.parameters tbody tr.hideMode, +table.parameters tbody tr div.hideMode, +table.parameters tbody tr.hideComp { + display:none +} + +table.parameters th.collapsed span.collapse { + display: none; +} +table.parameters th span.expand { + display: none; +} +table.parameters th.collapsed span.expand { + display: inline-block; +} +span.collapse a, +span.expand a, +span.sortDesc a, span.sortAttrDesc a, +span.sortAsc a, span.sortAttrAsc a { + display: block; + width: 100%; + height: 100%; + } + +table.parameters th.collapsed, +table.parameters td.collapsed { + min-width: 20px; + text-indent: -99999em; +} + +div.filter span.icon { + display: inline-block; + width: 16px; + height: 16px; + padding: 0; + background-size: contain; + margin-right: 3px; +} + +span.filterComp { + width: 16em; + white-space: nowrap; +} + +span.sortDesc, span.sortAttrDesc {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3NC42NCA0NzQuNjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ3NC42NCA0NzQuNjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggZD0iTTIzNy4zMiwwLjAxNkMxMDYuMjQ5LDAuMDE2LDAsMTA2LjIzMywwLDIzNy4zMzZzMTA2LjI4MSwyMzcuMjg4LDIzNy4zMiwyMzcuMjg4ICAgICBzMjM3LjMyLTEwNi4yNDksMjM3LjMyLTIzNy4zMlMzNjguMzkxLDAuMDE2LDIzNy4zMiwwLjAxNnogTTIzNy4zMiw0NDIuODQxYy0xMTMuMzM2LDAtMjA1LjUzNy05Mi4xNjktMjA1LjUzNy0yMDUuNTY5ICAgICBTMTIzLjk4MywzMS43MzUsMjM3LjMyLDMxLjczNXMyMDUuNTM3LDkyLjIzMywyMDUuNTM3LDIwNS41MzdTMzUwLjY4OCw0NDIuODQxLDIzNy4zMiw0NDIuODQxeiIgZmlsbD0iI0ZGRkZGRiIvPgoJCQk8cGF0aCBkPSJNMjQ3LjU1NCwxNjEuNTM0Yy0zLjExNS0zLjExNS03LjE4My00LjYwOC0xMS4yODMtNC42MDhzLTguMTY4LDEuNDk0LTExLjI4Myw0LjYwOCAgICAgTDEyMS45MTgsMjY0LjYwNWMtNi4xOTgsNi4xOTgtNi4xOTgsMTYuMjczLDAsMjIuNDdjNi4xOTgsNi4xOTgsMTYuMjczLDYuMTk4LDIyLjQ3LDBsOTEuODgzLTkxLjg4M2w5MS44ODMsOTEuODgzICAgICBjNi4xOTgsNi4xOTgsMTYuMjczLDYuMTk4LDIyLjQ3LDBjNi4xOTgtNi4xOTgsNi4xOTgtMTYuMjczLDAtMjIuNDdMMjQ3LjU1NCwxNjEuNTM0eiIgZmlsbD0iI0ZGRkZGRiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)} +span.sortAsc, span.sortAttrAsc {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ1My44MzQgNDUzLjgzNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDUzLjgzNCA0NTMuODM0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjMycHgiIGhlaWdodD0iMzJweCI+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPHBhdGggZD0iTTIyNi45MzIsMEMxMDEuNjI1LDAsMC4wMywxMDEuNTk1LDAuMDMsMjI2LjkwMkMwLDM1Mi4yNjksMTAxLjU5NSw0NTMuODM0LDIyNi45MzIsNDUzLjgzNCAgICAgIGMxMjUuMzA3LDAsMjI2Ljg3MS0xMDEuNTk1LDIyNi44NzEtMjI2LjkwMkM0NTMuODM0LDEwMS41OTUsMzUyLjIzOSwwLDIyNi45MzIsMHogTTIyNi45MzIsNDIzLjQ2NSAgICAgIGMtMTA4LjM0NCwwLTE5Ni41MDItODguMTU4LTE5Ni41MDItMTk2LjUwMlMxMTguNTg4LDMwLjQ2LDIyNi45MzIsMzAuNDZjMTA4LjM0NC0wLjAzLDE5Ni40NzIsODguMTI4LDE5Ni40NzIsMTk2LjUwMiAgICAgIEM0MjMuNDM0LDMzNS4yNzYsMzM1LjI3Niw0MjMuNDY1LDIyNi45MzIsNDIzLjQ2NXoiIGZpbGw9IiNGRkZGRkYiLz4KCQkJCTxwYXRoIGQ9Ik0zMTMuNzIzLDE3Ny4xOTlsLTg3Ljg4NSw4Ny45MTVsLTg3Ljg4NS04Ny45MTVjLTUuOTI4LTUuOTI4LTE1LjU2NS01LjkyOC0yMS40OTIsMCAgICAgIHMtNS45MjgsMTUuNTY1LDAsMjEuNDkybDk4LjU4NSw5OC41ODVjMi45NzksMy4wNCw2LjkwMSw0LjQzOCwxMC43OTIsNC40MzhjMy45MjIsMCw3LjgxMy0xLjQ5LDEwLjc5Mi00LjQzOGw5OC41NTUtOTguNTg1ICAgICAgYzUuOTI4LTUuOTI4LDUuOTI4LTE1LjU2NSwwLTIxLjQ5MlMzMTkuNjUsMTcxLjI3MSwzMTMuNzIzLDE3Ny4xOTl6IiBmaWxsPSIjRkZGRkZGIi8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)} + +span.expand {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjEyOHB4IiBoZWlnaHQ9IjEyOHB4IiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJSaWdodCI+CgkJPGc+CgkJCTxwYXRoIGQ9Ik0yNzcuNTgsMTc5LjY3OWwtMC4wNTcsMC4wNzdjLTUuMTI1LTQuNzA1LTExLjg1Ny03LjYzMS0xOS4zMzUtNy42MzFjLTE1LjgzNSwwLTI4LjY4OCwxMi44NTItMjguNjg4LDI4LjY4OCAgICAgYzAsOC4zNzcsMy42MzQsMTUuODM1LDkuMzUyLDIxLjA3NmwtMC4wNTcsMC4wNzdMMzMwLjQ4LDMwNmwtOTEuNjg2LDg0LjA1NWwwLjA1NywwLjA3NmMtNS43MTgsNS4yMjEtOS4zNTIsMTIuNjgtOS4zNTIsMjEuMDU3ICAgICBjMCwxNS44MzYsMTIuODUyLDI4LjY4OCwyOC42ODgsMjguNjg4YzcuNDc4LDAsMTQuMjEtMi45MjYsMTkuMzM1LTcuNjExbDAuMDU3LDAuMDc2bDExNC43NS0xMDUuMTg4ICAgICBjNS45MS01LjQ1MSw5LjI5NS0xMy4xMDEsOS4yOTUtMjEuMTUycy0zLjM4NS0xNS43MDItOS4yOTUtMjEuMTUyTDI3Ny41OCwxNzkuNjc5eiBNMzA2LDBDMTM3LjAxMiwwLDAsMTM3LjAxMiwwLDMwNiAgICAgczEzNy4wMTIsMzA2LDMwNiwzMDZzMzA2LTEzNy4wMTIsMzA2LTMwNlM0NzQuOTg4LDAsMzA2LDB6IE0zMDYsNTU0LjYyNUMxNjguOTEyLDU1NC42MjUsNTcuMzc1LDQ0My4wODgsNTcuMzc1LDMwNiAgICAgUzE2OC45MTIsNTcuMzc1LDMwNiw1Ny4zNzVTNTU0LjYyNSwxNjguOTEyLDU1NC42MjUsMzA2UzQ0My4wODgsNTU0LjYyNSwzMDYsNTU0LjYyNXoiIGZpbGw9IiNGRkZGRkYiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)} +span.collapse {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI1NnB4IiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJMZWZ0Ij4KCQk8Zz4KCQkJPHBhdGggZD0iTTM1My44MTIsMTcyLjEyNWMtNy40NzgsMC0xNC4yMSwyLjkyNi0xOS4zMzUsNy42MTJsLTAuMDU4LTAuMDc3TDIxOS42NywyODQuODQ4Yy01LjkxLDUuNDUxLTkuMjk1LDEzLjEwMS05LjI5NSwyMS4xNTIgICAgIHMzLjM4NSwxNS43MDEsOS4yOTUsMjEuMTUyTDMzNC40Miw0MzIuMzRsMC4wNTgtMC4wNzZjNS4xMjUsNC42ODYsMTEuODU3LDcuNjExLDE5LjMzNSw3LjYxMSAgICAgYzE1LjgzNiwwLDI4LjY4OC0xMi44NTIsMjguNjg4LTI4LjY4OGMwLTguMzU3LTMuNjM0LTE1LjgzNi05LjM1My0yMS4wNzZsMC4wNTgtMC4wNzZMMjgxLjUyLDMwNmw5MS42ODUtODQuMDU0bC0wLjA1OC0wLjA3NyAgICAgYzUuNzE5LTUuMjIxLDkuMzUzLTEyLjY4LDkuMzUzLTIxLjA1N0MzODIuNSwxODQuOTc3LDM2OS42NDgsMTcyLjEyNSwzNTMuODEyLDE3Mi4xMjV6IE0zMDYsMEMxMzcuMDEyLDAsMCwxMzcuMDEyLDAsMzA2ICAgICBzMTM3LjAxMiwzMDYsMzA2LDMwNnMzMDYtMTM3LjAxMiwzMDYtMzA2UzQ3NC45ODgsMCwzMDYsMHogTTMwNiw1NTQuNjI1QzE2OC45MTIsNTU0LjYyNSw1Ny4zNzUsNDQzLjA4OCw1Ny4zNzUsMzA2ICAgICBTMTY4LjkxMiw1Ny4zNzUsMzA2LDU3LjM3NVM1NTQuNjI1LDE2OC45MTIsNTU0LjYyNSwzMDZTNDQzLjA4OCw1NTQuNjI1LDMwNiw1NTQuNjI1eiIgZmlsbD0iI0ZGRkZGRiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)} + +div.filter span span.icon {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjIzMS43MDFweCIgaGVpZ2h0PSIyMjMuMTZweCIgdmlld0JveD0iMCAwIDIzMS43MDEgMjIzLjE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMzEuNzAxIDIyMy4xNiINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ5Ljc1NCwxMDAuNDZjMS41MjctMy40NjQsMy4yNDYtMy42NzgsNi4yNjMtMS45MzgNCgkJCQljMTYuNzQ3LDkuNjY5LDI0LjIwOSwxMy44Niw0MS4wNDgsMjMuMzY4YzEuMTksMC42NywyLjM5MiwxLjMyLDMuNzM0LDIuMDZDMTQ1LjI4OSw2My40OTQsMTYzLjMwOSwzOS4xODgsMjI4LjcxNywwDQoJCQkJYzEuMDczLDEuMzM0LDEuOTc3LDIuNDUzLDIuOTg0LDMuNzA3Yy0wLjY2NiwwLjc2LTEuMTY1LDEuNDU3LTEuNzg2LDIuMDE5Yy02MS41MTgsNTUuNTg2LTc2Ljk5Niw5MS4yNjktMTEzLjM1MiwxNjUuNDM3DQoJCQkJYy0zLjk3OSw4LjExOS00LjE3NCw3Ljg4NC05Ljg1NiwxLjI2M2MtMjEuNTEzLTI1LjA3LTMzLjY5OC00NC44MjEtNTUuMjY5LTY5Ljg0N0M1MC44NywxMDEuOTE4LDUwLjM1MSwxMDEuMjEzLDQ5Ljc1NCwxMDAuNDZ6Ig0KCQkJCS8+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8cGF0aCBkPSJNMTg0Ljg1MSw3NC40MDNjLTAuOTc4LDEuMzM3LTEuOTQ2LDIuNjg3LTIuOTE2LDQuMDM3djEwNC40NzZjMCw1LjEwNS00LjEzOSw5LjI0NC05LjI0NCw5LjI0NEg0MC4yNDQNCgljLTUuMTA1LDAtOS4yNDQtNC4xMzktOS4yNDQtOS4yNDRWNTAuNDdjMC01LjEwNSw0LjEzOS05LjI0NCw5LjI0NC05LjI0NGgxMTIuODEzYzEwLjE2NS0xMC42MjIsMjAuMzQ5LTIwLjQwOCwzMC42NTItMjkuNDU0DQoJYy0zLjUwNC0wLjk5OS03LjE5OC0xLjU0Ni0xMS4wMi0xLjU0Nkg0MC4yNDRDMTguMDU0LDEwLjIyNiwwLDI4LjI3OSwwLDUwLjQ3djEzMi40NDZjMCwyMi4xOSwxOC4wNTQsNDAuMjQ0LDQwLjI0NCw0MC4yNDRIMTcyLjY5DQoJYzIyLjE5LDAsNDAuMjQ0LTE4LjA1NCw0MC4yNDQtNDAuMjQ0VjUwLjQ3YzAtMy40MTUtMC40MzEtNi43MzEtMS4yMzUtOS45QzIwMi4zNTYsNTEuNDM4LDE5My4zOSw2Mi43MjcsMTg0Ljg1MSw3NC40MDN6Ii8+DQo8L3N2Zz4=)} +div.filter span.hidden span.icon {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjIzMS43MDFweCIgaGVpZ2h0PSIyMjMuMTZweCIgdmlld0JveD0iMCAwIDIzMS43MDEgMjIzLjE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMzEuNzAxIDIyMy4xNiINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBkPSJNMTcyLjY5LDQxLjIyNmM1LjEwNCwwLDkuMjQ0LDQuMTM5LDkuMjQ0LDkuMjQ0djEzMi40NDZjMCw1LjEwNS00LjE0LDkuMjQ0LTkuMjQ0LDkuMjQ0SDQwLjI0NA0KCWMtNS4xMDUsMC05LjI0NC00LjEzOS05LjI0NC05LjI0NFY1MC40N2MwLTUuMTA1LDQuMTM5LTkuMjQ0LDkuMjQ0LTkuMjQ0SDE3Mi42OSBNMTcyLjY5LDEwLjIyNkg0MC4yNDQNCglDMTguMDU0LDEwLjIyNiwwLDI4LjI3OSwwLDUwLjQ3djEzMi40NDZjMCwyMi4xOSwxOC4wNTQsNDAuMjQ0LDQwLjI0NCw0MC4yNDRIMTcyLjY5YzIyLjE5LDAsNDAuMjQ0LTE4LjA1NCw0MC4yNDQtNDAuMjQ0VjUwLjQ3DQoJQzIxMi45MzUsMjguMjc5LDE5NC44ODEsMTAuMjI2LDE3Mi42OSwxMC4yMjZMMTcyLjY5LDEwLjIyNnoiLz4NCjwvc3ZnPg==)} +<!--/*-->]]></root><!--*/--> diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp index a51ddebc02fb4c7ee78e0e47baf9ace75c8a3648..98bcb63b323626de4225507ef77ec350a99531a1 100644 --- a/VectoCore/VectoXML.spp +++ b/VectoCore/VectoXML.spp @@ -26,7 +26,7 @@ <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_FULL_updated.xml" HomeFolder="Yes"/> </Folder> <Folder FolderName="XSL Files" ExtStr="xsl;xslt"> - <File FilePath="E:\QUAM\Workspace\VECTO_API\API\RenderTable.xslt" HomeFolder="Yes"/> + <File FilePath="E:\QUAM\Workspace\VECTO_quam\Documentation\XML\RenderTable.xslt" HomeFolder="Yes"/> <File FilePath="E:\QUAM\Workspace\VECTO_quam\VectoCommon\VectoHashing\Resources\XSLT\SortInputData.xslt" HomeFolder="Yes"/> </Folder> <Folder FolderName="XQuery Files" ExtStr="xq;xql;xquery;xqu"/>