ItronコミッションXSL変換
Oracle Utilities Smart Grid Gateway Adapter for Itron OpenWayは、複数のItron OpenWay APIバージョンをサポートしています。このサポートを実現するために、一部の要求XSLでは、ソース・スキーマに埋め込まれたバージョン番号がチェックされます。同様に、応答XSLは、様々なソースXMLを処理し、共通のSGG書式に値をマップするように設計されています。
Itronコミッション・プロセスでは、次のXSL変換が使用されます。
D8-CommissionRequest.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serArr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:prov390="http://www.itron.com/ami/2009/08/provisioning"
xmlns:prov370="http://www.itron.com/ami/2008/10/provisioning">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<xsl:apply-templates select="./requestEnvelope/AddMeterDefinitions"/>
</xsl:template>
<xsl:template match="AddMeterDefinitions[../itronVersion='3.70']">
<xsl:apply-templates select="." mode="Itr370"/>
</xsl:template>
<xsl:template match="AddMeterDefinitions[../itronVersion='3.90']">
<xsl:apply-templates select="." mode="Itr390"/>
</xsl:template>
<xsl:template match="*[local-name() != 'string']" mode="Itr370">
<xsl:element name="{local-name()}" namespace="http://www.itron.com/ami/2008/10/provisioning">
<xsl:apply-templates select="*|text()" mode="Itr370"/>
</xsl:element>
</xsl:template>
<xsl:template match="*[local-name() != 'string']" mode="Itr390">
<xsl:element name="{local-name()}" namespace="http://www.itron.com/ami/2009/08/provisioning">
<xsl:apply-templates select="*|text()" mode="Itr390"/>
</xsl:element>
</xsl:template>
<xsl:template match="string" mode="Itr390">
<xsl:element name="string" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="string" mode="Itr370">
<xsl:element name="string" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
D8-CommissionResponse.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serArr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:prov390="http://www.itron.com/ami/2009/08/provisioning"
xmlns:prov370="http://www.itron.com/ami/2008/10/provisioning">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<xsl:apply-templates select="./requestEnvelope/AddMeterDefinitions"/>
</xsl:template>
<xsl:template match="AddMeterDefinitions[../itronVersion='3.70']">
<xsl:apply-templates select="." mode="Itr370"/>
</xsl:template>
<xsl:template match="AddMeterDefinitions[../itronVersion='3.90']">
<xsl:apply-templates select="." mode="Itr390"/>
</xsl:template>
<xsl:template match="*[local-name() != 'string']" mode="Itr370">
<xsl:element name="{local-name()}" namespace="http://www.itron.com/ami/2008/10/provisioning">
<xsl:apply-templates select="*|text()" mode="Itr370"/>
</xsl:element>
</xsl:template>
<xsl:template match="*[local-name() != 'string']" mode="Itr390">
<xsl:element name="{local-name()}" namespace="http://www.itron.com/ami/2009/08/provisioning">
<xsl:apply-templates select="*|text()" mode="Itr390"/>
</xsl:element>
</xsl:template>
<xsl:template match="string" mode="Itr390">
<xsl:element name="string" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="string" mode="Itr370">
<xsl:element name="string" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>