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