blob: 68d8e9c969999c7abcacf9f474864228a26c00a5 [file] [log] [blame]
Zack Williams41513bf2018-07-07 20:08:35 -07001<!--
2Copyright 2017-present Open Networking Foundation
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15-->
Stephane Barbarie14088962017-06-01 16:56:55 -040016<?xml version="1.0" standalone="yes"?>
17<!--This XSLT was automatically generated from a Schematron schema.-->
18<axsl:stylesheet xmlns:date="http://exslt.org/dates-and-times" xmlns:dyn="http://exslt.org/dynamic" xmlns:exsl="http://exslt.org/common" xmlns:math="http://exslt.org/math" xmlns:random="http://exslt.org/random" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:set="http://exslt.org/sets" xmlns:str="http://exslt.org/strings" xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:voltha="urn:opencord:params:xml:ns:voltha:voltha" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" extension-element-prefixes="date dyn exsl math random regexp set str" version="1.0"><!--Implementers: please note that overriding process-prolog or process-root is
19 the preferred method for meta-stylesheets to use where possible. -->
20<axsl:param name="archiveDirParameter"/><axsl:param name="archiveNameParameter"/><axsl:param name="fileNameParameter"/><axsl:param name="fileDirParameter"/>
21
22<!--PHASES-->
23
24
25<!--PROLOG-->
26<axsl:output xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:svrl="http://purl.oclc.org/dsdl/svrl" method="xml" omit-xml-declaration="no" standalone="yes" indent="yes"/>
27
28<!--KEYS-->
29
30
31<!--DEFAULT RULES-->
32
33
34<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
35<!--This mode can be used to generate an ugly though full XPath for locators-->
36<axsl:template match="*" mode="schematron-select-full-path"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:template>
37
38<!--MODE: SCHEMATRON-FULL-PATH-->
39<!--This mode can be used to generate an ugly though full XPath for locators-->
40<axsl:template match="*" mode="schematron-get-full-path"><axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/><axsl:text>/</axsl:text><axsl:choose><axsl:when test="namespace-uri()=''"><axsl:value-of select="name()"/><axsl:variable name="p_1" select="1+ count(preceding-sibling::*[name()=name(current())])"/><axsl:if test="$p_1&gt;1 or following-sibling::*[name()=name(current())]">[<axsl:value-of select="$p_1"/>]</axsl:if></axsl:when><axsl:otherwise><axsl:text>*[local-name()='</axsl:text><axsl:value-of select="local-name()"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select="namespace-uri()"/><axsl:text>']</axsl:text><axsl:variable name="p_2" select="1+ count(preceding-sibling::*[local-name()=local-name(current())])"/><axsl:if test="$p_2&gt;1 or following-sibling::*[local-name()=local-name(current())]">[<axsl:value-of select="$p_2"/>]</axsl:if></axsl:otherwise></axsl:choose></axsl:template><axsl:template match="@*" mode="schematron-get-full-path"><axsl:text>/</axsl:text><axsl:choose><axsl:when test="namespace-uri()=''">@<axsl:value-of select="name()"/></axsl:when><axsl:otherwise><axsl:text>@*[local-name()='</axsl:text><axsl:value-of select="local-name()"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select="namespace-uri()"/><axsl:text>']</axsl:text></axsl:otherwise></axsl:choose></axsl:template>
41
42<!--MODE: SCHEMATRON-FULL-PATH-2-->
43<!--This mode can be used to generate prefixed XPath for humans-->
44<axsl:template match="node() | @*" mode="schematron-get-full-path-2"><axsl:for-each select="ancestor-or-self::*"><axsl:text>/</axsl:text><axsl:value-of select="name(.)"/><axsl:if test="preceding-sibling::*[name(.)=name(current())]"><axsl:text>[</axsl:text><axsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test="not(self::*)"><axsl:text/>/@<axsl:value-of select="name(.)"/></axsl:if></axsl:template>
45
46<!--MODE: GENERATE-ID-FROM-PATH -->
47<axsl:template match="/" mode="generate-id-from-path"/><axsl:template match="text()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')"/></axsl:template><axsl:template match="comment()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')"/></axsl:template><axsl:template match="processing-instruction()" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')"/></axsl:template><axsl:template match="@*" mode="generate-id-from-path"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:value-of select="concat('.@', name())"/></axsl:template><axsl:template match="*" mode="generate-id-from-path" priority="-0.5"><axsl:apply-templates select="parent::*" mode="generate-id-from-path"/><axsl:text>.</axsl:text><axsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')"/></axsl:template><!--MODE: SCHEMATRON-FULL-PATH-3-->
48<!--This mode can be used to generate prefixed XPath for humans
49 (Top-level element has index)-->
50<axsl:template match="node() | @*" mode="schematron-get-full-path-3"><axsl:for-each select="ancestor-or-self::*"><axsl:text>/</axsl:text><axsl:value-of select="name(.)"/><axsl:if test="parent::*"><axsl:text>[</axsl:text><axsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test="not(self::*)"><axsl:text/>/@<axsl:value-of select="name(.)"/></axsl:if></axsl:template>
51
52<!--MODE: GENERATE-ID-2 -->
53<axsl:template match="/" mode="generate-id-2">U</axsl:template><axsl:template match="*" mode="generate-id-2" priority="2"><axsl:text>U</axsl:text><axsl:number level="multiple" count="*"/></axsl:template><axsl:template match="node()" mode="generate-id-2"><axsl:text>U.</axsl:text><axsl:number level="multiple" count="*"/><axsl:text>n</axsl:text><axsl:number count="node()"/></axsl:template><axsl:template match="@*" mode="generate-id-2"><axsl:text>U.</axsl:text><axsl:number level="multiple" count="*"/><axsl:text>_</axsl:text><axsl:value-of select="string-length(local-name(.))"/><axsl:text>_</axsl:text><axsl:value-of select="translate(name(),':','.')"/></axsl:template><!--Strip characters--><axsl:template match="text()" priority="-1"/>
54
55<!--SCHEMA METADATA-->
56<axsl:template match="/"><svrl:schematron-output xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" title="" schemaVersion=""><axsl:comment><axsl:value-of select="$archiveDirParameter"/>  
57 <axsl:value-of select="$archiveNameParameter"/>  
58 <axsl:value-of select="$fileNameParameter"/>  
59 <axsl:value-of select="$fileDirParameter"/></axsl:comment><svrl:ns-prefix-in-attribute-values uri="http://exslt.org/dynamic" prefix="dyn"/><svrl:ns-prefix-in-attribute-values uri="urn:opencord:params:xml:ns:voltha:voltha" prefix="voltha"/><svrl:ns-prefix-in-attribute-values uri="urn:ietf:params:xml:ns:netconf:base:1.0" prefix="nc"/><svrl:active-pattern><axsl:attribute name="id">voltha</axsl:attribute><axsl:attribute name="name">voltha</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M4"/><svrl:active-pattern><axsl:attribute name="id">idm139853992598368</axsl:attribute><axsl:attribute name="name">idm139853992598368</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M5"/><svrl:active-pattern><axsl:attribute name="id">idm139853992594640</axsl:attribute><axsl:attribute name="name">idm139853992594640</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M6"/><svrl:active-pattern><axsl:attribute name="id">idm139853992593776</axsl:attribute><axsl:attribute name="name">idm139853992593776</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M7"/><svrl:active-pattern><axsl:attribute name="id">idm139853992565136</axsl:attribute><axsl:attribute name="name">idm139853992565136</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M8"/><svrl:active-pattern><axsl:attribute name="id">idm139853992564208</axsl:attribute><axsl:attribute name="name">idm139853992564208</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M9"/><svrl:active-pattern><axsl:attribute name="id">idm139853992563280</axsl:attribute><axsl:attribute name="name">idm139853992563280</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M10"/><svrl:active-pattern><axsl:attribute name="id">idm139853992544272</axsl:attribute><axsl:attribute name="name">idm139853992544272</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M11"/><svrl:active-pattern><axsl:attribute name="id">idm139853992539920</axsl:attribute><axsl:attribute name="name">idm139853992539920</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M12"/><svrl:active-pattern><axsl:attribute name="id">idm139853992538992</axsl:attribute><axsl:attribute name="name">idm139853992538992</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M13"/><svrl:active-pattern><axsl:attribute name="id">idm139853992510432</axsl:attribute><axsl:attribute name="name">idm139853992510432</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M14"/><svrl:active-pattern><axsl:attribute name="id">idm139853992509504</axsl:attribute><axsl:attribute name="name">idm139853992509504</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M15"/><svrl:active-pattern><axsl:attribute name="id">idm139853992508576</axsl:attribute><axsl:attribute name="name">idm139853992508576</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M16"/><svrl:active-pattern><axsl:attribute name="id">idm139853992475568</axsl:attribute><axsl:attribute name="name">idm139853992475568</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M17"/><svrl:active-pattern><axsl:attribute name="id">idm139853992471552</axsl:attribute><axsl:attribute name="name">idm139853992471552</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M18"/><svrl:active-pattern><axsl:attribute name="id">idm139853992470624</axsl:attribute><axsl:attribute name="name">idm139853992470624</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M19"/><svrl:active-pattern><axsl:attribute name="id">idm139853992442064</axsl:attribute><axsl:attribute name="name">idm139853992442064</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M20"/><svrl:active-pattern><axsl:attribute name="id">idm139853992441136</axsl:attribute><axsl:attribute name="name">idm139853992441136</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M21"/><svrl:active-pattern><axsl:attribute name="id">idm139853992440208</axsl:attribute><axsl:attribute name="name">idm139853992440208</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M22"/><svrl:active-pattern><axsl:attribute name="id">idm139853992420976</axsl:attribute><axsl:attribute name="name">idm139853992420976</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M23"/><svrl:active-pattern><axsl:attribute name="id">idm139853992416960</axsl:attribute><axsl:attribute name="name">idm139853992416960</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M24"/><svrl:active-pattern><axsl:attribute name="id">idm139853992416032</axsl:attribute><axsl:attribute name="name">idm139853992416032</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M25"/><svrl:active-pattern><axsl:attribute name="id">idm139853992387472</axsl:attribute><axsl:attribute name="name">idm139853992387472</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M26"/><svrl:active-pattern><axsl:attribute name="id">idm139853992386544</axsl:attribute><axsl:attribute name="name">idm139853992386544</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M27"/><svrl:active-pattern><axsl:attribute name="id">idm139853992385616</axsl:attribute><axsl:attribute name="name">idm139853992385616</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M28"/><svrl:active-pattern><axsl:attribute name="id">idm139853992361888</axsl:attribute><axsl:attribute name="name">idm139853992361888</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M29"/><svrl:active-pattern><axsl:attribute name="id">idm139853992357872</axsl:attribute><axsl:attribute name="name">idm139853992357872</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M30"/><svrl:active-pattern><axsl:attribute name="id">idm139853992356944</axsl:attribute><axsl:attribute name="name">idm139853992356944</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M31"/><svrl:active-pattern><axsl:attribute name="id">idm139853992328384</axsl:attribute><axsl:attribute name="name">idm139853992328384</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M32"/><svrl:active-pattern><axsl:attribute name="id">idm139853992327456</axsl:attribute><axsl:attribute name="name">idm139853992327456</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M33"/><svrl:active-pattern><axsl:attribute name="id">idm139853992326528</axsl:attribute><axsl:attribute name="name">idm139853992326528</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M34"/><svrl:active-pattern><axsl:attribute name="id">idm139853992312448</axsl:attribute><axsl:attribute name="name">idm139853992312448</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M35"/><svrl:active-pattern><axsl:attribute name="id">idm139853992308432</axsl:attribute><axsl:attribute name="name">idm139853992308432</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M36"/><svrl:active-pattern><axsl:attribute name="id">idm139853992307504</axsl:attribute><axsl:attribute name="name">idm139853992307504</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M37"/><svrl:active-pattern><axsl:attribute name="id">idm139853992278944</axsl:attribute><axsl:attribute name="name">idm139853992278944</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M38"/><svrl:active-pattern><axsl:attribute name="id">idm139853992278016</axsl:attribute><axsl:attribute name="name">idm139853992278016</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M39"/><svrl:active-pattern><axsl:attribute name="id">idm139853992277088</axsl:attribute><axsl:attribute name="name">idm139853992277088</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M40"/><svrl:active-pattern><axsl:attribute name="id">idm139853992264352</axsl:attribute><axsl:attribute name="name">idm139853992264352</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M41"/><svrl:active-pattern><axsl:attribute name="id">idm139853992242320</axsl:attribute><axsl:attribute name="name">idm139853992242320</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M42"/><svrl:active-pattern><axsl:attribute name="id">idm139853992198304</axsl:attribute><axsl:attribute name="name">idm139853992198304</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M43"/><svrl:active-pattern><axsl:attribute name="id">idm139853992192064</axsl:attribute><axsl:attribute name="name">idm139853992192064</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M44"/><svrl:active-pattern><axsl:attribute name="id">idm139853992179296</axsl:attribute><axsl:attribute name="name">idm139853992179296</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M45"/><svrl:active-pattern><axsl:attribute name="id">idm139853992178336</axsl:attribute><axsl:attribute name="name">idm139853992178336</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M46"/><svrl:active-pattern><axsl:attribute name="id">idm139853992177376</axsl:attribute><axsl:attribute name="name">idm139853992177376</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M47"/><svrl:active-pattern><axsl:attribute name="id">idm139853992176432</axsl:attribute><axsl:attribute name="name">idm139853992176432</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M48"/><svrl:active-pattern><axsl:attribute name="id">idm139853992175488</axsl:attribute><axsl:attribute name="name">idm139853992175488</axsl:attribute><axsl:apply-templates/></svrl:active-pattern><axsl:apply-templates select="/" mode="M49"/></svrl:schematron-output></axsl:template>
60
61<!--SCHEMATRON PATTERNS-->
62<axsl:param name="root" select="/nc:config"/>
63
64<!--PATTERN voltha-->
65
66
67 <!--RULE -->
68<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:adapters" priority="1059" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:adapters"/>
69
70 <!--REPORT -->
71<axsl:if test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
72
73 <!--RULE -->
74<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:adapters/voltha:logical_device_ids" priority="1058" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:adapters/voltha:logical_device_ids"/>
75
76 <!--REPORT -->
77<axsl:if test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:logical_device_ids"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
78
79 <!--RULE -->
80<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices" priority="1057" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices"/>
81
82 <!--REPORT -->
83<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
84
85 <!--RULE -->
86<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:ports" priority="1056" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:ports"/>
87
88 <!--REPORT -->
89<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
90
91 <!--RULE -->
92<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices" priority="1055" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices"/>
93
94 <!--REPORT -->
95<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
96
97 <!--RULE -->
98<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:ports" priority="1054" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:ports"/>
99
100 <!--REPORT -->
101<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
102
103 <!--RULE -->
104<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:ports/voltha:peers" priority="1053" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:ports/voltha:peers"/>
105
106 <!--REPORT -->
107<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
108
109 <!--RULE -->
110<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_types" priority="1052" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_types"/>
111
112 <!--REPORT -->
113<axsl:if test="preceding-sibling::voltha:device_types[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:device_types[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
114
115 <!--RULE -->
116<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups" priority="1051" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups"/>
117
118 <!--REPORT -->
119<axsl:if test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
120
121 <!--RULE -->
122<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices" priority="1050" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices"/>
123
124 <!--REPORT -->
125<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
126
127 <!--RULE -->
128<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:ports" priority="1049" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:ports"/>
129
130 <!--REPORT -->
131<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
132
133 <!--RULE -->
134<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices" priority="1048" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices"/>
135
136 <!--REPORT -->
137<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
138
139 <!--RULE -->
140<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:ports" priority="1047" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:ports"/>
141
142 <!--REPORT -->
143<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
144
145 <!--RULE -->
146<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers" priority="1046" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers"/>
147
148 <!--REPORT -->
149<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
150
151 <!--RULE -->
152<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:alarm_filters" priority="1045" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:alarm_filters"/>
153
154 <!--REPORT -->
155<axsl:if test="preceding-sibling::voltha:alarm_filters[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:alarm_filters[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
156
157 <!--RULE -->
158<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:alarm_filters/voltha:rules" priority="1044" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:alarm_filters/voltha:rules"/>
159
160 <!--REPORT -->
161<axsl:if test="preceding-sibling::voltha:rules[voltha:key=current()/voltha:key]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:rules[voltha:key=current()/voltha:key]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:key"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
162
163 <!--RULE -->
164<axsl:template match="/nc:config/voltha:VolthaInstances/voltha:items" priority="1043" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstances/voltha:items"/>
165
166 <!--REPORT -->
167<axsl:if test="preceding-sibling::voltha:items[voltha:items=current()/voltha:items]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:items=current()/voltha:items]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:items"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
168
169 <!--RULE -->
170<axsl:template match="/nc:config/voltha:Voltha/voltha:instances" priority="1042" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances"/>
171
172 <!--REPORT -->
173<axsl:if test="preceding-sibling::voltha:instances[voltha:instance_id=current()/voltha:instance_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instances[voltha:instance_id=current()/voltha:instance_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:instance_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
174
175 <!--RULE -->
176<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:adapters" priority="1041" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:adapters"/>
177
178 <!--REPORT -->
179<axsl:if test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
180
181 <!--RULE -->
182<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:adapters/voltha:logical_device_ids" priority="1040" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:adapters/voltha:logical_device_ids"/>
183
184 <!--REPORT -->
185<axsl:if test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:logical_device_ids"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
186
187 <!--RULE -->
188<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices" priority="1039" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices"/>
189
190 <!--REPORT -->
191<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
192
193 <!--RULE -->
194<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:ports" priority="1038" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:ports"/>
195
196 <!--REPORT -->
197<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
198
199 <!--RULE -->
200<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices" priority="1037" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices"/>
201
202 <!--REPORT -->
203<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
204
205 <!--RULE -->
206<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:ports" priority="1036" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:ports"/>
207
208 <!--REPORT -->
209<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
210
211 <!--RULE -->
212<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:ports/voltha:peers" priority="1035" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:ports/voltha:peers"/>
213
214 <!--REPORT -->
215<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
216
217 <!--RULE -->
218<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_types" priority="1034" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_types"/>
219
220 <!--REPORT -->
221<axsl:if test="preceding-sibling::voltha:device_types[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:device_types[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
222
223 <!--RULE -->
224<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups" priority="1033" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups"/>
225
226 <!--REPORT -->
227<axsl:if test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
228
229 <!--RULE -->
230<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices" priority="1032" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices"/>
231
232 <!--REPORT -->
233<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
234
235 <!--RULE -->
236<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:ports" priority="1031" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:ports"/>
237
238 <!--REPORT -->
239<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
240
241 <!--RULE -->
242<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices" priority="1030" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices"/>
243
244 <!--REPORT -->
245<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
246
247 <!--RULE -->
248<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:ports" priority="1029" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:ports"/>
249
250 <!--REPORT -->
251<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
252
253 <!--RULE -->
254<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers" priority="1028" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers"/>
255
256 <!--REPORT -->
257<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
258
259 <!--RULE -->
260<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:alarm_filters" priority="1027" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:alarm_filters"/>
261
262 <!--REPORT -->
263<axsl:if test="preceding-sibling::voltha:alarm_filters[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:alarm_filters[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
264
265 <!--RULE -->
266<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:alarm_filters/voltha:rules" priority="1026" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:alarm_filters/voltha:rules"/>
267
268 <!--REPORT -->
269<axsl:if test="preceding-sibling::voltha:rules[voltha:key=current()/voltha:key]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:rules[voltha:key=current()/voltha:key]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:key"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
270
271 <!--RULE -->
272<axsl:template match="/nc:config/voltha:Voltha/voltha:adapters" priority="1025" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:adapters"/>
273
274 <!--REPORT -->
275<axsl:if test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:adapters[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
276
277 <!--RULE -->
278<axsl:template match="/nc:config/voltha:Voltha/voltha:adapters/voltha:logical_device_ids" priority="1024" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:adapters/voltha:logical_device_ids"/>
279
280 <!--REPORT -->
281<axsl:if test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_device_ids[voltha:logical_device_ids=current()/voltha:logical_device_ids]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:logical_device_ids"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
282
283 <!--RULE -->
284<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices" priority="1023" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices"/>
285
286 <!--REPORT -->
287<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
288
289 <!--RULE -->
290<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:ports" priority="1022" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:ports"/>
291
292 <!--REPORT -->
293<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
294
295 <!--RULE -->
296<axsl:template match="/nc:config/voltha:Voltha/voltha:devices" priority="1021" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices"/>
297
298 <!--REPORT -->
299<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
300
301 <!--RULE -->
302<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:ports" priority="1020" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:ports"/>
303
304 <!--REPORT -->
305<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
306
307 <!--RULE -->
308<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:ports/voltha:peers" priority="1019" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:ports/voltha:peers"/>
309
310 <!--REPORT -->
311<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
312
313 <!--RULE -->
314<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups" priority="1018" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups"/>
315
316 <!--REPORT -->
317<axsl:if test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:device_groups[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
318
319 <!--RULE -->
320<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices" priority="1017" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices"/>
321
322 <!--REPORT -->
323<axsl:if test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:logical_devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
324
325 <!--RULE -->
326<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:ports" priority="1016" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:ports"/>
327
328 <!--REPORT -->
329<axsl:if test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
330
331 <!--RULE -->
332<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices" priority="1015" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices"/>
333
334 <!--REPORT -->
335<axsl:if test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:devices[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
336
337 <!--RULE -->
338<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:ports" priority="1014" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:ports"/>
339
340 <!--REPORT -->
341<axsl:if test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:ports[voltha:port_no=current()/voltha:port_no]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_no"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
342
343 <!--RULE -->
344<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers" priority="1013" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:ports/voltha:peers"/>
345
346 <!--REPORT -->
347<axsl:if test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:peers[voltha:device_id=current()/voltha:device_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:device_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
348
349 <!--RULE -->
350<axsl:template match="/nc:config/voltha:ofp_hello/voltha:elements" priority="1012" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_hello/voltha:elements"/>
351
352 <!--REPORT -->
353<axsl:if test="preceding-sibling::voltha:elements[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:elements[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
354
355 <!--RULE -->
356<axsl:template match="/nc:config/voltha:ofp_port_mod/voltha:hw_addr" priority="1011" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_port_mod/voltha:hw_addr"/>
357
358 <!--REPORT -->
359<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
360
361 <!--RULE -->
362<axsl:template match="/nc:config/voltha:ofp_meter_mod/voltha:bands" priority="1010" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_meter_mod/voltha:bands"/>
363
364 <!--REPORT -->
365<axsl:if test="preceding-sibling::voltha:bands[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:bands[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
366
367 <!--RULE -->
368<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties" priority="1009" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties"/>
369
370 <!--REPORT -->
371<axsl:if test="preceding-sibling::voltha:properties[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:properties[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
372
373 <!--RULE -->
374<axsl:template match="/nc:config/voltha:ofp_group_features/voltha:max_groups" priority="1008" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_group_features/voltha:max_groups"/>
375
376 <!--REPORT -->
377<axsl:if test="preceding-sibling::voltha:max_groups[voltha:max_groups=current()/voltha:max_groups]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:max_groups[voltha:max_groups=current()/voltha:max_groups]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:max_groups"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
378
379 <!--RULE -->
380<axsl:template match="/nc:config/voltha:ofp_group_features/voltha:actions" priority="1007" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_group_features/voltha:actions"/>
381
382 <!--REPORT -->
383<axsl:if test="preceding-sibling::voltha:actions[voltha:actions=current()/voltha:actions]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:actions=current()/voltha:actions]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:actions"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
384
385 <!--RULE -->
386<axsl:template match="/nc:config/voltha:ofp_meter_stats/voltha:band_stats" priority="1006" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_meter_stats/voltha:band_stats"/>
387
388 <!--REPORT -->
389<axsl:if test="preceding-sibling::voltha:band_stats[voltha:packet_band_count=current()/voltha:packet_band_count]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:band_stats[voltha:packet_band_count=current()/voltha:packet_band_count]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:packet_band_count"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
390
391 <!--RULE -->
392<axsl:template match="/nc:config/voltha:ofp_meter_config/voltha:bands" priority="1005" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_meter_config/voltha:bands"/>
393
394 <!--REPORT -->
395<axsl:if test="preceding-sibling::voltha:bands[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:bands[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
396
397 <!--RULE -->
398<axsl:template match="/nc:config/voltha:ofp_queue_get_config_reply/voltha:queues" priority="1004" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_queue_get_config_reply/voltha:queues"/>
399
400 <!--REPORT -->
401<axsl:if test="preceding-sibling::voltha:queues[voltha:queue_id=current()/voltha:queue_id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:queues[voltha:queue_id=current()/voltha:queue_id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:queue_id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
402
403 <!--RULE -->
404<axsl:template match="/nc:config/voltha:ofp_queue_get_config_reply/voltha:queues/voltha:properties" priority="1003" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_queue_get_config_reply/voltha:queues/voltha:properties"/>
405
406 <!--REPORT -->
407<axsl:if test="preceding-sibling::voltha:properties[voltha:property=current()/voltha:property]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:properties[voltha:property=current()/voltha:property]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:property"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
408
409 <!--RULE -->
410<axsl:template match="/nc:config/voltha:ofp_async_config/voltha:packet_in_mask" priority="1002" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_async_config/voltha:packet_in_mask"/>
411
412 <!--REPORT -->
413<axsl:if test="preceding-sibling::voltha:packet_in_mask[voltha:packet_in_mask=current()/voltha:packet_in_mask]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:packet_in_mask[voltha:packet_in_mask=current()/voltha:packet_in_mask]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:packet_in_mask"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
414
415 <!--RULE -->
416<axsl:template match="/nc:config/voltha:ofp_async_config/voltha:port_status_mask" priority="1001" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_async_config/voltha:port_status_mask"/>
417
418 <!--REPORT -->
419<axsl:if test="preceding-sibling::voltha:port_status_mask[voltha:port_status_mask=current()/voltha:port_status_mask]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:port_status_mask[voltha:port_status_mask=current()/voltha:port_status_mask]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:port_status_mask"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
420
421 <!--RULE -->
422<axsl:template match="/nc:config/voltha:ofp_async_config/voltha:flow_removed_mask" priority="1000" mode="M4"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_async_config/voltha:flow_removed_mask"/>
423
424 <!--REPORT -->
425<axsl:if test="preceding-sibling::voltha:flow_removed_mask[voltha:flow_removed_mask=current()/voltha:flow_removed_mask]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:flow_removed_mask[voltha:flow_removed_mask=current()/voltha:flow_removed_mask]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "voltha:flow_removed_mask"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template><axsl:template match="text()" priority="-1" mode="M4"/><axsl:template match="@*|node()" priority="-2" mode="M4"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M4"/></axsl:template>
426
427<!--PATTERN idm139853992598368-->
428
429
430 <!--RULE -->
431<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M5"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
432
433 <!--REPORT -->
434<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M5"/></axsl:template><axsl:template match="text()" priority="-1" mode="M5"/><axsl:template match="@*|node()" priority="-2" mode="M5"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M5"/></axsl:template>
435
436<!--PATTERN idm139853992594640-->
437
438
439 <!--RULE -->
440<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M6"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flows/voltha:items"/>
441
442 <!--REPORT -->
443<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M6"/></axsl:template>
444
445 <!--RULE -->
446<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M6"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
447
448 <!--REPORT -->
449<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M6"/></axsl:template><axsl:template match="text()" priority="-1" mode="M6"/><axsl:template match="@*|node()" priority="-2" mode="M6"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M6"/></axsl:template>
450
451<!--PATTERN idm139853992593776-->
452
453
454 <!--RULE -->
455<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M7"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
456
457 <!--REPORT -->
458<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M7"/></axsl:template>
459
460 <!--RULE -->
461<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M7"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
462
463 <!--REPORT -->
464<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M7"/></axsl:template>
465
466 <!--RULE -->
467<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M7"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
468
469 <!--REPORT -->
470<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M7"/></axsl:template><axsl:template match="text()" priority="-1" mode="M7"/><axsl:template match="@*|node()" priority="-2" mode="M7"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M7"/></axsl:template>
471
472<!--PATTERN idm139853992565136-->
473
474
475 <!--RULE -->
476<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M8"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flows/voltha:items"/>
477
478 <!--REPORT -->
479<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M8"/></axsl:template>
480
481 <!--RULE -->
482<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M8"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
483
484 <!--REPORT -->
485<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M8"/></axsl:template><axsl:template match="text()" priority="-1" mode="M8"/><axsl:template match="@*|node()" priority="-2" mode="M8"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M8"/></axsl:template>
486
487<!--PATTERN idm139853992564208-->
488
489
490 <!--RULE -->
491<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M9"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items"/>
492
493 <!--REPORT -->
494<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M9"/></axsl:template>
495
496 <!--RULE -->
497<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M9"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
498
499 <!--REPORT -->
500<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M9"/></axsl:template>
501
502 <!--RULE -->
503<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M9"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
504
505 <!--REPORT -->
506<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M9"/></axsl:template><axsl:template match="text()" priority="-1" mode="M9"/><axsl:template match="@*|node()" priority="-2" mode="M9"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M9"/></axsl:template>
507
508<!--PATTERN idm139853992563280-->
509
510
511 <!--RULE -->
512<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M10"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:groups"/>
513
514 <!--REPORT -->
515<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M10"/></axsl:template>
516
517 <!--RULE -->
518<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M10"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
519
520 <!--REPORT -->
521<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M10"/></axsl:template>
522
523 <!--RULE -->
524<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M10"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:devices/voltha:pm_configs/voltha:metrics"/>
525
526 <!--REPORT -->
527<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M10"/></axsl:template><axsl:template match="text()" priority="-1" mode="M10"/><axsl:template match="@*|node()" priority="-2" mode="M10"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M10"/></axsl:template>
528
529<!--PATTERN idm139853992544272-->
530
531
532 <!--RULE -->
533<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M11"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
534
535 <!--REPORT -->
536<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M11"/></axsl:template><axsl:template match="text()" priority="-1" mode="M11"/><axsl:template match="@*|node()" priority="-2" mode="M11"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M11"/></axsl:template>
537
538<!--PATTERN idm139853992539920-->
539
540
541 <!--RULE -->
542<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M12"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items"/>
543
544 <!--REPORT -->
545<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M12"/></axsl:template>
546
547 <!--RULE -->
548<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M12"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
549
550 <!--REPORT -->
551<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M12"/></axsl:template><axsl:template match="text()" priority="-1" mode="M12"/><axsl:template match="@*|node()" priority="-2" mode="M12"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M12"/></axsl:template>
552
553<!--PATTERN idm139853992538992-->
554
555
556 <!--RULE -->
557<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M13"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
558
559 <!--REPORT -->
560<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M13"/></axsl:template>
561
562 <!--RULE -->
563<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M13"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
564
565 <!--REPORT -->
566<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M13"/></axsl:template>
567
568 <!--RULE -->
569<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M13"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
570
571 <!--REPORT -->
572<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M13"/></axsl:template><axsl:template match="text()" priority="-1" mode="M13"/><axsl:template match="@*|node()" priority="-2" mode="M13"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M13"/></axsl:template>
573
574<!--PATTERN idm139853992510432-->
575
576
577 <!--RULE -->
578<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M14"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flows/voltha:items"/>
579
580 <!--REPORT -->
581<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M14"/></axsl:template>
582
583 <!--RULE -->
584<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M14"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
585
586 <!--REPORT -->
587<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M14"/></axsl:template><axsl:template match="text()" priority="-1" mode="M14"/><axsl:template match="@*|node()" priority="-2" mode="M14"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M14"/></axsl:template>
588
589<!--PATTERN idm139853992509504-->
590
591
592 <!--RULE -->
593<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M15"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items"/>
594
595 <!--REPORT -->
596<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M15"/></axsl:template>
597
598 <!--RULE -->
599<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M15"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
600
601 <!--REPORT -->
602<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M15"/></axsl:template>
603
604 <!--RULE -->
605<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M15"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
606
607 <!--REPORT -->
608<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M15"/></axsl:template><axsl:template match="text()" priority="-1" mode="M15"/><axsl:template match="@*|node()" priority="-2" mode="M15"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M15"/></axsl:template>
609
610<!--PATTERN idm139853992508576-->
611
612
613 <!--RULE -->
614<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M16"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups"/>
615
616 <!--REPORT -->
617<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M16"/></axsl:template>
618
619 <!--RULE -->
620<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M16"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
621
622 <!--REPORT -->
623<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M16"/></axsl:template>
624
625 <!--RULE -->
626<axsl:template match="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M16"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:VolthaInstance/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics"/>
627
628 <!--REPORT -->
629<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M16"/></axsl:template><axsl:template match="text()" priority="-1" mode="M16"/><axsl:template match="@*|node()" priority="-2" mode="M16"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M16"/></axsl:template>
630
631<!--PATTERN idm139853992475568-->
632
633
634 <!--RULE -->
635<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M17"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
636
637 <!--REPORT -->
638<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M17"/></axsl:template><axsl:template match="text()" priority="-1" mode="M17"/><axsl:template match="@*|node()" priority="-2" mode="M17"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M17"/></axsl:template>
639
640<!--PATTERN idm139853992471552-->
641
642
643 <!--RULE -->
644<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M18"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flows/voltha:items"/>
645
646 <!--REPORT -->
647<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M18"/></axsl:template>
648
649 <!--RULE -->
650<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M18"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
651
652 <!--REPORT -->
653<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M18"/></axsl:template><axsl:template match="text()" priority="-1" mode="M18"/><axsl:template match="@*|node()" priority="-2" mode="M18"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M18"/></axsl:template>
654
655<!--PATTERN idm139853992470624-->
656
657
658 <!--RULE -->
659<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M19"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
660
661 <!--REPORT -->
662<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M19"/></axsl:template>
663
664 <!--RULE -->
665<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M19"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
666
667 <!--REPORT -->
668<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M19"/></axsl:template>
669
670 <!--RULE -->
671<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M19"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
672
673 <!--REPORT -->
674<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M19"/></axsl:template><axsl:template match="text()" priority="-1" mode="M19"/><axsl:template match="@*|node()" priority="-2" mode="M19"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M19"/></axsl:template>
675
676<!--PATTERN idm139853992442064-->
677
678
679 <!--RULE -->
680<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M20"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flows/voltha:items"/>
681
682 <!--REPORT -->
683<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M20"/></axsl:template>
684
685 <!--RULE -->
686<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M20"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
687
688 <!--REPORT -->
689<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M20"/></axsl:template><axsl:template match="text()" priority="-1" mode="M20"/><axsl:template match="@*|node()" priority="-2" mode="M20"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M20"/></axsl:template>
690
691<!--PATTERN idm139853992441136-->
692
693
694 <!--RULE -->
695<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M21"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items"/>
696
697 <!--REPORT -->
698<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M21"/></axsl:template>
699
700 <!--RULE -->
701<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M21"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
702
703 <!--REPORT -->
704<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M21"/></axsl:template>
705
706 <!--RULE -->
707<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M21"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
708
709 <!--REPORT -->
710<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M21"/></axsl:template><axsl:template match="text()" priority="-1" mode="M21"/><axsl:template match="@*|node()" priority="-2" mode="M21"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M21"/></axsl:template>
711
712<!--PATTERN idm139853992440208-->
713
714
715 <!--RULE -->
716<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M22"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:groups"/>
717
718 <!--REPORT -->
719<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M22"/></axsl:template>
720
721 <!--RULE -->
722<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M22"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
723
724 <!--REPORT -->
725<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M22"/></axsl:template>
726
727 <!--RULE -->
728<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M22"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:devices/voltha:pm_configs/voltha:metrics"/>
729
730 <!--REPORT -->
731<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M22"/></axsl:template><axsl:template match="text()" priority="-1" mode="M22"/><axsl:template match="@*|node()" priority="-2" mode="M22"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M22"/></axsl:template>
732
733<!--PATTERN idm139853992420976-->
734
735
736 <!--RULE -->
737<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M23"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
738
739 <!--REPORT -->
740<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M23"/></axsl:template><axsl:template match="text()" priority="-1" mode="M23"/><axsl:template match="@*|node()" priority="-2" mode="M23"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M23"/></axsl:template>
741
742<!--PATTERN idm139853992416960-->
743
744
745 <!--RULE -->
746<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M24"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items"/>
747
748 <!--REPORT -->
749<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M24"/></axsl:template>
750
751 <!--RULE -->
752<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M24"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
753
754 <!--REPORT -->
755<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M24"/></axsl:template><axsl:template match="text()" priority="-1" mode="M24"/><axsl:template match="@*|node()" priority="-2" mode="M24"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M24"/></axsl:template>
756
757<!--PATTERN idm139853992416032-->
758
759
760 <!--RULE -->
761<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M25"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
762
763 <!--REPORT -->
764<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M25"/></axsl:template>
765
766 <!--RULE -->
767<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M25"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
768
769 <!--REPORT -->
770<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M25"/></axsl:template>
771
772 <!--RULE -->
773<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M25"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
774
775 <!--REPORT -->
776<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M25"/></axsl:template><axsl:template match="text()" priority="-1" mode="M25"/><axsl:template match="@*|node()" priority="-2" mode="M25"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M25"/></axsl:template>
777
778<!--PATTERN idm139853992387472-->
779
780
781 <!--RULE -->
782<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M26"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flows/voltha:items"/>
783
784 <!--REPORT -->
785<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M26"/></axsl:template>
786
787 <!--RULE -->
788<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M26"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
789
790 <!--REPORT -->
791<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M26"/></axsl:template><axsl:template match="text()" priority="-1" mode="M26"/><axsl:template match="@*|node()" priority="-2" mode="M26"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M26"/></axsl:template>
792
793<!--PATTERN idm139853992386544-->
794
795
796 <!--RULE -->
797<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M27"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items"/>
798
799 <!--REPORT -->
800<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M27"/></axsl:template>
801
802 <!--RULE -->
803<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M27"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
804
805 <!--REPORT -->
806<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M27"/></axsl:template>
807
808 <!--RULE -->
809<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M27"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
810
811 <!--REPORT -->
812<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M27"/></axsl:template><axsl:template match="text()" priority="-1" mode="M27"/><axsl:template match="@*|node()" priority="-2" mode="M27"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M27"/></axsl:template>
813
814<!--PATTERN idm139853992385616-->
815
816
817 <!--RULE -->
818<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M28"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups"/>
819
820 <!--REPORT -->
821<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M28"/></axsl:template>
822
823 <!--RULE -->
824<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M28"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
825
826 <!--REPORT -->
827<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M28"/></axsl:template>
828
829 <!--RULE -->
830<axsl:template match="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M28"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:instances/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics"/>
831
832 <!--REPORT -->
833<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M28"/></axsl:template><axsl:template match="text()" priority="-1" mode="M28"/><axsl:template match="@*|node()" priority="-2" mode="M28"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M28"/></axsl:template>
834
835<!--PATTERN idm139853992361888-->
836
837
838 <!--RULE -->
839<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M29"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
840
841 <!--REPORT -->
842<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M29"/></axsl:template><axsl:template match="text()" priority="-1" mode="M29"/><axsl:template match="@*|node()" priority="-2" mode="M29"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M29"/></axsl:template>
843
844<!--PATTERN idm139853992357872-->
845
846
847 <!--RULE -->
848<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M30"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flows/voltha:items"/>
849
850 <!--REPORT -->
851<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M30"/></axsl:template>
852
853 <!--RULE -->
854<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M30"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
855
856 <!--REPORT -->
857<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M30"/></axsl:template><axsl:template match="text()" priority="-1" mode="M30"/><axsl:template match="@*|node()" priority="-2" mode="M30"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M30"/></axsl:template>
858
859<!--PATTERN idm139853992356944-->
860
861
862 <!--RULE -->
863<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M31"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
864
865 <!--REPORT -->
866<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M31"/></axsl:template>
867
868 <!--RULE -->
869<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M31"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
870
871 <!--REPORT -->
872<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M31"/></axsl:template>
873
874 <!--RULE -->
875<axsl:template match="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M31"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
876
877 <!--REPORT -->
878<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M31"/></axsl:template><axsl:template match="text()" priority="-1" mode="M31"/><axsl:template match="@*|node()" priority="-2" mode="M31"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M31"/></axsl:template>
879
880<!--PATTERN idm139853992328384-->
881
882
883 <!--RULE -->
884<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M32"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:flows/voltha:items"/>
885
886 <!--REPORT -->
887<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M32"/></axsl:template>
888
889 <!--RULE -->
890<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M32"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
891
892 <!--REPORT -->
893<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M32"/></axsl:template><axsl:template match="text()" priority="-1" mode="M32"/><axsl:template match="@*|node()" priority="-2" mode="M32"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M32"/></axsl:template>
894
895<!--PATTERN idm139853992327456-->
896
897
898 <!--RULE -->
899<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M33"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items"/>
900
901 <!--REPORT -->
902<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M33"/></axsl:template>
903
904 <!--RULE -->
905<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M33"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
906
907 <!--REPORT -->
908<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M33"/></axsl:template>
909
910 <!--RULE -->
911<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M33"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
912
913 <!--REPORT -->
914<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M33"/></axsl:template><axsl:template match="text()" priority="-1" mode="M33"/><axsl:template match="@*|node()" priority="-2" mode="M33"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M33"/></axsl:template>
915
916<!--PATTERN idm139853992326528-->
917
918
919 <!--RULE -->
920<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M34"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:groups"/>
921
922 <!--REPORT -->
923<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M34"/></axsl:template>
924
925 <!--RULE -->
926<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M34"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
927
928 <!--REPORT -->
929<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M34"/></axsl:template>
930
931 <!--RULE -->
932<axsl:template match="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M34"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:devices/voltha:pm_configs/voltha:metrics"/>
933
934 <!--REPORT -->
935<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M34"/></axsl:template><axsl:template match="text()" priority="-1" mode="M34"/><axsl:template match="@*|node()" priority="-2" mode="M34"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M34"/></axsl:template>
936
937<!--PATTERN idm139853992312448-->
938
939
940 <!--RULE -->
941<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr" priority="1000" mode="M35"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:ports/voltha:ofp_port/voltha:hw_addr"/>
942
943 <!--REPORT -->
944<axsl:if test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:hw_addr[voltha:hw_addr=current()/voltha:hw_addr]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "hw_addr"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M35"/></axsl:template><axsl:template match="text()" priority="-1" mode="M35"/><axsl:template match="@*|node()" priority="-2" mode="M35"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M35"/></axsl:template>
945
946<!--PATTERN idm139853992308432-->
947
948
949 <!--RULE -->
950<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items" priority="1001" mode="M36"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items"/>
951
952 <!--REPORT -->
953<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M36"/></axsl:template>
954
955 <!--RULE -->
956<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M36"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flows/voltha:items/voltha:instructions"/>
957
958 <!--REPORT -->
959<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M36"/></axsl:template><axsl:template match="text()" priority="-1" mode="M36"/><axsl:template match="@*|node()" priority="-2" mode="M36"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M36"/></axsl:template>
960
961<!--PATTERN idm139853992307504-->
962
963
964 <!--RULE -->
965<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items" priority="1002" mode="M37"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items"/>
966
967 <!--REPORT -->
968<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M37"/></axsl:template>
969
970 <!--RULE -->
971<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M37"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
972
973 <!--REPORT -->
974<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M37"/></axsl:template>
975
976 <!--RULE -->
977<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M37"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:logical_devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
978
979 <!--REPORT -->
980<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M37"/></axsl:template><axsl:template match="text()" priority="-1" mode="M37"/><axsl:template match="@*|node()" priority="-2" mode="M37"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M37"/></axsl:template>
981
982<!--PATTERN idm139853992278944-->
983
984
985 <!--RULE -->
986<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flows/voltha:items" priority="1001" mode="M38"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flows/voltha:items"/>
987
988 <!--REPORT -->
989<axsl:if test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:id=current()/voltha:id]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "id"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M38"/></axsl:template>
990
991 <!--RULE -->
992<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions" priority="1000" mode="M38"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flows/voltha:items/voltha:instructions"/>
993
994 <!--REPORT -->
995<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M38"/></axsl:template><axsl:template match="text()" priority="-1" mode="M38"/><axsl:template match="@*|node()" priority="-2" mode="M38"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M38"/></axsl:template>
996
997<!--PATTERN idm139853992278016-->
998
999
1000 <!--RULE -->
1001<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items" priority="1002" mode="M39"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items"/>
1002
1003 <!--REPORT -->
1004<axsl:if test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:items[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M39"/></axsl:template>
1005
1006 <!--RULE -->
1007<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets" priority="1001" mode="M39"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets"/>
1008
1009 <!--REPORT -->
1010<axsl:if test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:buckets[voltha:weight=current()/voltha:weight]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "weight"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M39"/></axsl:template>
1011
1012 <!--RULE -->
1013<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions" priority="1000" mode="M39"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:flow_groups/voltha:items/voltha:buckets/voltha:actions"/>
1014
1015 <!--REPORT -->
1016<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M39"/></axsl:template><axsl:template match="text()" priority="-1" mode="M39"/><axsl:template match="@*|node()" priority="-2" mode="M39"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M39"/></axsl:template>
1017
1018<!--PATTERN idm139853992277088-->
1019
1020
1021 <!--RULE -->
1022<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups" priority="1002" mode="M40"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups"/>
1023
1024 <!--REPORT -->
1025<axsl:if test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:groups[voltha:group_name=current()/voltha:group_name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "group_name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M40"/></axsl:template>
1026
1027 <!--RULE -->
1028<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics" priority="1001" mode="M40"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:groups/voltha:metrics"/>
1029
1030 <!--REPORT -->
1031<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M40"/></axsl:template>
1032
1033 <!--RULE -->
1034<axsl:template match="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics" priority="1000" mode="M40"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:Voltha/voltha:device_groups/voltha:devices/voltha:pm_configs/voltha:metrics"/>
1035
1036 <!--REPORT -->
1037<axsl:if test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:metrics[voltha:name=current()/voltha:name]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "name"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M40"/></axsl:template><axsl:template match="text()" priority="-1" mode="M40"/><axsl:template match="@*|node()" priority="-2" mode="M40"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M40"/></axsl:template>
1038
1039<!--PATTERN idm139853992264352-->
1040
1041
1042 <!--RULE -->
1043<axsl:template match="/nc:config/voltha:ofp_hello/voltha:elements/voltha:versionbitmap/voltha:bitmaps" priority="1000" mode="M41"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_hello/voltha:elements/voltha:versionbitmap/voltha:bitmaps"/>
1044
1045 <!--REPORT -->
1046<axsl:if test="preceding-sibling::voltha:bitmaps[voltha:bitmaps=current()/voltha:bitmaps]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:bitmaps[voltha:bitmaps=current()/voltha:bitmaps]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "bitmaps"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M41"/></axsl:template><axsl:template match="text()" priority="-1" mode="M41"/><axsl:template match="@*|node()" priority="-2" mode="M41"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M41"/></axsl:template>
1047
1048<!--PATTERN idm139853992242320-->
1049
1050
1051 <!--RULE -->
1052<axsl:template match="/nc:config/voltha:ofp_flow_removed/voltha:match/voltha:oxm_fields" priority="1000" mode="M42"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_flow_removed/voltha:match/voltha:oxm_fields"/>
1053
1054 <!--REPORT -->
1055<axsl:if test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "oxm_class"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M42"/></axsl:template><axsl:template match="text()" priority="-1" mode="M42"/><axsl:template match="@*|node()" priority="-2" mode="M42"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M42"/></axsl:template>
1056
1057<!--PATTERN idm139853992198304-->
1058
1059
1060 <!--RULE -->
1061<axsl:template match="/nc:config/voltha:ofp_flow_stats_request/voltha:match/voltha:oxm_fields" priority="1000" mode="M43"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_flow_stats_request/voltha:match/voltha:oxm_fields"/>
1062
1063 <!--REPORT -->
1064<axsl:if test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "oxm_class"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M43"/></axsl:template><axsl:template match="text()" priority="-1" mode="M43"/><axsl:template match="@*|node()" priority="-2" mode="M43"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M43"/></axsl:template>
1065
1066<!--PATTERN idm139853992192064-->
1067
1068
1069 <!--RULE -->
1070<axsl:template match="/nc:config/voltha:ofp_aggregate_stats_request/voltha:match/voltha:oxm_fields" priority="1000" mode="M44"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_aggregate_stats_request/voltha:match/voltha:oxm_fields"/>
1071
1072 <!--REPORT -->
1073<axsl:if test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:oxm_fields[voltha:oxm_class=current()/voltha:oxm_class]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "oxm_class"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M44"/></axsl:template><axsl:template match="text()" priority="-1" mode="M44"/><axsl:template match="@*|node()" priority="-2" mode="M44"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M44"/></axsl:template>
1074
1075<!--PATTERN idm139853992179296-->
1076
1077
1078 <!--RULE -->
1079<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:instructions/voltha:instructions" priority="1000" mode="M45"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:instructions/voltha:instructions"/>
1080
1081 <!--REPORT -->
1082<axsl:if test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:instructions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M45"/></axsl:template><axsl:template match="text()" priority="-1" mode="M45"/><axsl:template match="@*|node()" priority="-2" mode="M45"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M45"/></axsl:template>
1083
1084<!--PATTERN idm139853992178336-->
1085
1086
1087 <!--RULE -->
1088<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:next_tables/voltha:next_table_ids" priority="1000" mode="M46"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:next_tables/voltha:next_table_ids"/>
1089
1090 <!--REPORT -->
1091<axsl:if test="preceding-sibling::voltha:next_table_ids[voltha:next_table_ids=current()/voltha:next_table_ids]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:next_table_ids[voltha:next_table_ids=current()/voltha:next_table_ids]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "next_table_ids"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M46"/></axsl:template><axsl:template match="text()" priority="-1" mode="M46"/><axsl:template match="@*|node()" priority="-2" mode="M46"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M46"/></axsl:template>
1092
1093<!--PATTERN idm139853992177376-->
1094
1095
1096 <!--RULE -->
1097<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:actions/voltha:actions" priority="1000" mode="M47"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:actions/voltha:actions"/>
1098
1099 <!--REPORT -->
1100<axsl:if test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:actions[voltha:type=current()/voltha:type]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "type"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M47"/></axsl:template><axsl:template match="text()" priority="-1" mode="M47"/><axsl:template match="@*|node()" priority="-2" mode="M47"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M47"/></axsl:template>
1101
1102<!--PATTERN idm139853992176432-->
1103
1104
1105 <!--RULE -->
1106<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:oxm/voltha:oxm_ids" priority="1000" mode="M48"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:oxm/voltha:oxm_ids"/>
1107
1108 <!--REPORT -->
1109<axsl:if test="preceding-sibling::voltha:oxm_ids[voltha:oxm_ids=current()/voltha:oxm_ids]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:oxm_ids[voltha:oxm_ids=current()/voltha:oxm_ids]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "oxm_ids"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M48"/></axsl:template><axsl:template match="text()" priority="-1" mode="M48"/><axsl:template match="@*|node()" priority="-2" mode="M48"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M48"/></axsl:template>
1110
1111<!--PATTERN idm139853992175488-->
1112
1113
1114 <!--RULE -->
1115<axsl:template match="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:experimenter/voltha:experimenter_data" priority="1000" mode="M49"><svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" context="/nc:config/voltha:ofp_table_features/voltha:properties/voltha:experimenter/voltha:experimenter_data"/>
1116
1117 <!--REPORT -->
1118<axsl:if test="preceding-sibling::voltha:experimenter_data[voltha:experimenter_data=current()/voltha:experimenter_data]"><svrl:successful-report xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schold="http://www.ascc.net/xml/schematron" test="preceding-sibling::voltha:experimenter_data[voltha:experimenter_data=current()/voltha:experimenter_data]"><axsl:attribute name="location"><axsl:apply-templates select="." mode="schematron-get-full-path"/></axsl:attribute><svrl:text>Duplicate key "experimenter_data"</svrl:text></svrl:successful-report></axsl:if><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M49"/></axsl:template><axsl:template match="text()" priority="-1" mode="M49"/><axsl:template match="@*|node()" priority="-2" mode="M49"><axsl:apply-templates select="*|comment()|processing-instruction()" mode="M49"/></axsl:template></axsl:stylesheet>