1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
5 xmlns:oor="http://org/openroadm/device"
6 exclude-result-prefixes="oor d">
8 <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
10 <xsl:template match="/">
11 <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
12 <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">
13 <xsl:element name="info">
14 <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>
17 <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />
19 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">
20 <xsl:element name="shelves" >
21 <xsl:call-template name="shelve-body"/>
25 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">
26 <xsl:element name="circuit-packs" >
27 <xsl:call-template name="cp-body"/>
31 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">
32 <xsl:element name="interface" >
33 <xsl:call-template name="inter-body"/>
37 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">
38 <xsl:element name="protocols" >
39 <xsl:call-template name="proto-body"/>
43 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">
44 <xsl:element name="degree" >
45 <xsl:call-template name="degree-body"/>
49 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">
50 <xsl:element name="shared-risk-group" >
51 <xsl:call-template name="srg-body"/>
59 <xsl:template match="oor:info">
60 <xsl:for-each select="./*">
61 <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number' or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">
62 <xsl:copy-of select="." />
67 <xsl:template name="shelve-body">
68 <xsl:for-each select="./*">
69 <xsl:if test="name(.) ='shelf-name' or name(.) = 'shelf-type' or name(.) = 'rack' or name(.) = 'shelf-position' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'due-date'">
70 <xsl:copy-of select="." />
75 <xsl:template name="cp-body">
76 <xsl:for-each select="./*">
77 <xsl:if test="name(.) = 'circuit-pack-type' or name(.) = 'circuit-pack-product-code' or name(.) = 'circuit-pack-name' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'circuit-pack-mode' or name(.) = 'shelf' or name(.) = 'slot' or name(.) = 'subSlot' or name(.) = 'due-date' or name(.) = 'parent-circuit-pack'">
78 <xsl:copy-of select="." />
80 <xsl:if test="name(.) = 'ports'">
81 <xsl:for-each select=".">
82 <xsl:element name="ports" >
83 <xsl:call-template name="ports-body"/>
90 <xsl:template name="inter-body">
91 <xsl:for-each select="./*">
92 <xsl:if test="not(name(.) = 'operational-state' or name(.)='ethernet')">
93 <xsl:copy-of select="." />
95 <xsl:if test="name(.)='ethernet'">
96 <xsl:element name="ethernet" >
97 <xsl:call-template name="eth-body"/>
103 <xsl:template name="eth-body">
104 <xsl:for-each select="./*">
105 <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">
106 <xsl:copy-of select="." />
111 <xsl:template name="proto-body">
112 <xsl:for-each select="./*">
113 <xsl:if test="name(.) = 'lldp'">
114 <xsl:for-each select=".">
115 <xsl:element name="lldp" >
116 <xsl:call-template name="lldp-body"/>
123 <xsl:template name="ports-body">
124 <xsl:for-each select="./*">
125 <xsl:if test="name(.) = 'port-name' or name(.) = 'port-type' or name(.) = 'port-qual' or name(.) = 'circuit-id' or name(.) = 'administrative-state' or name(.) = 'logical-connection-point' or name(.) = 'otdr-port' ">
126 <xsl:copy-of select="." />
131 <xsl:template name="lldp-body">
132 <xsl:for-each select="./*">
133 <xsl:if test="not(name(.) = 'nbr-list') ">
134 <xsl:copy-of select="." />
139 <xsl:template name="degree-body">
140 <xsl:for-each select="./*">
141 <xsl:if test="not(name(.) = 'max-wavelengths')">
142 <xsl:copy-of select="." />
147 <xsl:template name="srg-body">
148 <xsl:for-each select="./*">
149 <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelengthDuplication')">
150 <xsl:copy-of select="." />