<?xml version="1.0" ?>
<ns1:X1Response xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1ResponseMessage xsi:type="ns1:RemoveDestinationResponse">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.474625Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>8c229735-9acf-43ed-8d72-71602625b349</ns1:x1TransactionId>
<ns1:oK>AcknowledgedAndCompleted</ns1:oK>
</ns1:x1ResponseMessage>
</ns1:X1Response>
<?xml version="1.0" ?>
<ns1:X1Request xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1RequestMessage xsi:type="ns1:ReportDestinationIssueRequest">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.526329Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>7e3ff959-55b0-47bd-a417-0d0383252150</ns1:x1TransactionId>
<ns1:dId>b0ce308c-aa17-42bd-a27b-287bcb5b3468</ns1:dId>
<ns1:destinationReportType>NonTerminatingFault</ns1:destinationReportType>
<ns1:destinationIssueDetails>Example destination issue</ns1:destinationIssueDetails>
</ns1:x1RequestMessage>
</ns1:X1Request>
<?xml version="1.0" ?>
<ns1:X1Response xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1ResponseMessage xsi:type="ns1:ReportDestinationIssueResponse">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.526329Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>7e3ff959-55b0-47bd-a417-0d0383252150</ns1:x1TransactionId>
<ns1:oK>AcknowledgedAndCompleted</ns1:oK>
</ns1:x1ResponseMessage>
</ns1:X1Response>
<?xml version="1.0" ?>
<ns1:X1Request xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1RequestMessage xsi:type="ns1:ReportNEIssueRequest">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.531784Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>c4cbb148-d3ee-46a9-8e1e-7446d6f91e3b</ns1:x1TransactionId>
<ns1:typeOfNeIssueMessage>Warning</ns1:typeOfNeIssueMessage>
<ns1:description>Example NE issue</ns1:description>
</ns1:x1RequestMessage>
</ns1:X1Request>
<?xml version="1.0" ?>
<ns1:X1Response xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1ResponseMessage xsi:type="ns1:ReportNEIssueResponse">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.531784Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>c4cbb148-d3ee-46a9-8e1e-7446d6f91e3b</ns1:x1TransactionId>
<ns1:oK>AcknowledgedAndCompleted</ns1:oK>
</ns1:x1ResponseMessage>
</ns1:X1Response>
<?xml version="1.0" ?>
<ns1:X1Request xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1RequestMessage xsi:type="ns1:ReportTaskIssueRequest">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.516321Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>5f5ae0e4-58fe-4e4f-a949-3bb0d7b09295</ns1:x1TransactionId>
<ns1:xId>29f28e1c-f230-486a-a860-f5a784ab9172</ns1:xId>
<ns1:taskReportType>NonTerminatingFault</ns1:taskReportType>
<ns1:taskIssueDetails>Example task issue</ns1:taskIssueDetails>
</ns1:x1RequestMessage>
</ns1:X1Request>
<?xml version="1.0" ?>
<ns1:X1Response xmlns:ns1="http://uri.etsi.org/03221/X1/2017/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:x1ResponseMessage xsi:type="ns1:ReportTaskIssueResponse">
<ns1:admfIdentifier>admfID</ns1:admfIdentifier>
<ns1:neIdentifier>neID</ns1:neIdentifier>
<ns1:messageTimestamp>2017-10-06T18:46:21.517323Z</ns1:messageTimestamp>
<ns1:version>v1.6.1</ns1:version>
<ns1:x1TransactionId>5f5ae0e4-58fe-4e4f-a949-3bb0d7b09295</ns1:x1TransactionId>
<ns1:oK>AcknowledgedAndCompleted</ns1:oK>
</ns1:x1ResponseMessage>
</ns1:X1Response>
import glob
import sys
from pathlib import Path
XS = 'http://www.w3.org/2001/XMLSchema'
def validate_example(example, schema):
print('Validating example {}'.format(example))
xml = open(example)
doc = etree.parse(xml)
schema.assertValid(doc)
print('Validated example {}'.format(example))
def validate_examples(schema):
examples = glob.glob('./examples/*.xml')
if not examples:
sys.exit('ERROR: No examples found in ./examples/ directory')
for example in examples:
validate_example(example, schema)
def load_schema(xsd):
xsd_file = open(xsd)
xsd_doc = etree.parse(xsd_file)
# Set schemaLocation of TS 103 280 XSD
common_xsd = glob.glob('./TS_103_280_*.xsd')
if not common_xsd:
sys.exit('ERROR: Please copy a TS 103 280 XSD into this directory')
if len(common_xsd) > 1:
sys.exit('ERROR: Too many TS 103 280 XSDs in current directory')
imports = xsd_doc.xpath('//*/xs:import', namespaces={'xs': XS})
for xsd_import in imports:
xsd_import.attrib['schemaLocation'] = str(Path(common_xsd[0]))
print (xsd_import.attrib)
# Load TS 103 221-1 XSD as a schema
return etree.XMLSchema(xsd_doc)
def validate_xsd(xsd):
print('Validating XSD {}'.format(xsd))
schema = load_schema(xsd)
print('Validated XSD {}'.format(xsd))
print('')
validate_examples(schema)
print('')
print('Validated all examples for XSD {}'.format(xsd))
print('')
def validate_xsds():
xsds = glob.glob('./TS_103_221_01_*.xsd')
if not xsds:
sys.exit('ERROR: No TS 103 221-1 XSDs found in current directory')
for xsd in xsds:
validate_xsd(xsd)
if __name__ == '__main__':
if sys.version_info <= (3, 5):
sys.exit('ERROR: You need at least Python 3.5 to run this tool')
try:
from lxml import etree
except ImportError:
sys.exit('ERROR: You need to install the Python lxml library')
validate_xsds()
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://FooServiceSchema.example.com/schema/v1.1.1/"
elementFormDefault="qualified"
xmlns="http://FooServiceSchema.example.com/schema/v1.1.1/"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="fooServiceDefinedParameters" type="FooServiceDefinedParameters"></xs:element>
<xs:complexType name="FooServiceDefinedParameters">
<xs:sequence>
<xs:element name="item1" type="ItemType"></xs:element>
<xs:element name="item2" type="ItemType"></xs:element>
<xs:element name="item3" type="ItemType"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ItemType">
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"></xs:enumeration>
<xs:enumeration value="Bar"></xs:enumeration>
<xs:enumeration value="Baz"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.