--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 Nokia.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.services.pmmapper.exceptions;
+
+public class NotSupportedFormatTypeException extends Exception {
+
+ public NotSupportedFormatTypeException(String message) {
+ super(message);
+ }
+
+}
package org.onap.dcaegen2.services.pmmapper.model.measurement.nr;
-import java.util.ArrayList;
-import java.util.List;
+import lombok.Data;
+import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementData;
+import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementFile;
+import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementInfo;
-import java.util.Optional;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;
-import lombok.Data;
-import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementData;
-import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementFile;
-import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementInfo;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"measData",
"fileFooter"
})
-@XmlRootElement(name = "MeasDataFile")
+@XmlRootElement(name = "measDataFile")
@Data
public class MeasDataFile implements MeasurementFile {
measData.clear();
measurementData.forEach(measurementDatum -> {
MeasData measDatum = new MeasData();
- measDatum.setMeasuredEntity((MeasData.MeasuredEntity) measurementDatum.getManagedEntity());
+ measDatum.setMeasEntity((MeasData.MeasEntity) measurementDatum.getManagedEntity());
measDatum.setMeasInfo(measurementDatum.getMeasurementInfo());
this.measData.add(measDatum);
});
@Data
public static class FileFooter {
- @XmlElement(name = "MeasData", required = true)
+ @XmlElement(name = "measData", required = true)
protected MeasDataFile.FileFooter.MeasData measData;
@XmlAccessorType(XmlAccessType.FIELD)
public static class FileHeader {
@XmlElement(required = true)
protected MeasDataFile.FileHeader.FileSender fileSender;
- @XmlElement(name = "MeasData", required = true)
+ @XmlElement(name = "measData", required = true)
protected MeasDataFile.FileHeader.MeasData measData;
@XmlAttribute(name = "fileFormatVersion", required = true)
protected String fileFormatVersion;
@XmlAccessorType(XmlAccessType.FIELD)
- @XmlType(name = "", propOrder = {
- "measuredEntity",
+ @XmlType(name = "", propOrder = {"measEntity",
"measInfo"
})
@Data
public static class MeasData implements MeasurementData {
@XmlElement(required = true)
- protected MeasDataFile.MeasData.MeasuredEntity measuredEntity;
+ protected MeasEntity measEntity;
@XmlElement()
protected List<MeasurementInfo> measInfo;
@Override
public Object getManagedEntity() {
- return this.measuredEntity;
+ return this.measEntity;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@Data
- public static class MeasuredEntity {
+ public static class MeasEntity {
@XmlAttribute(name = "localDn")
protected String localDn;
@XmlAttribute(name = "userLabel")
private static final ONAPLogAdapter logger = new ONAPLogAdapter(LoggerFactory.getLogger(MeasConverter.class));\r
\r
public static final String LTE_FILE_TYPE = "org.3GPP.32.435#measCollec";\r
- public static final String NR_FILE_TYPE = "org.3GPP.28.550#measData";\r
-\r
+ public static final String NR_FILE_TYPE = "org.3GPP.28.532#measData";\r
+ public static final String NOT_SUPPORTED_TYPE = "notSupportedType";\r
\r
/**\r
* Converts 3GPP Measurement xml string to MeasCollecFile.\r
import java.nio.file.Files;
import java.util.HashMap;
import java.util.stream.Stream;
+
import lombok.NonNull;
+import org.onap.dcaegen2.services.pmmapper.exceptions.NotSupportedFormatTypeException;
import org.onap.dcaegen2.services.pmmapper.model.Event;
import org.onap.logging.ref.slf4j.ONAPLogAdapter;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
+
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
private static final ONAPLogAdapter logger = new ONAPLogAdapter(LoggerFactory.getLogger(XMLValidator.class));
private HashMap<String, Schema> schemas;
private SchemaFactory schemaFactory;
+
public XMLValidator(Path schemaDirectory) {
logger.unwrap().trace("Constructing schema from {}", schemaDirectory);
schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
logger.unwrap().debug("Loading schema from {}", schema.toString());
try {
schemas.put(schema.getFileName().toString(), schemaFactory.newSchema(schema.toFile()));
- } catch(SAXException exception) {
+ } catch (SAXException exception) {
logger.unwrap().error("Failed to discover a valid schema at {}", schema, exception);
throw new IllegalArgumentException("Failed to discover a valid schema from given path", exception);
}
}
+
public boolean validate(@NonNull Event event) {
try {
- Validator validator = schemas.get(event.getMetadata().getFileFormatType()).newValidator();
+ Validator validator = getValidatorForAccordingFileFormat(event.getMetadata().getFileFormatType());
validator.validate(new StreamSource(new StringReader(event.getBody())));
logger.unwrap().info("XML validation successful");
logger.unwrap().debug(String.valueOf(event));
} catch (SAXException | IOException exception) {
logger.unwrap().error("XML validation failed {}", event, exception);
return false;
+ } catch (NotSupportedFormatTypeException exception) {
+ logger.unwrap().error("XML validation failed - given file format type is not supported. {}", event, exception);
+ return false;
+ }
+ }
+
+ private Validator getValidatorForAccordingFileFormat(String fileFormatType) throws NotSupportedFormatTypeException {
+ Schema schema = schemas.get(fileFormatType);
+ if (schema == null) {
+ throw new NotSupportedFormatTypeException(fileFormatType);
}
+ return schema.newValidator();
}
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" ?>
<!--
- 3GPP TS 28.550 Measurements data XML file format definition
+ 3GPP TS 28.532 Measurements data XML file format definition
data file XML schema
measData.xsd
-->
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:md="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData" targetNamespace="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData" elementFormDefault="qualified">
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:md="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData" targetNamespace="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData" elementFormDefault="qualified">
<!-- Measurement collection data file root XML element -->
- <element name="MeasDataFile">
+ <element name="measDataFile">
<complexType>
<sequence>
<element name="fileHeader">
<sequence>
<element name="fileSender">
<complexType>
- <attribute name="senderName" type="string" use="optional"/>
- <attribute name="senderType" type="string" use="optional"/>
+ <attribute name="senderName" type="string" use="optional" />
+ <attribute name="senderType" type="string" use="optional" />
</complexType>
</element>
- <element name="MeasData">
+ <element name="measData">
<complexType>
- <attribute name="beginTime" type="dateTime" use="required"/>
+ <attribute name="beginTime" type="dateTime" use="required" />
</complexType>
</element>
</sequence>
- <attribute name="fileFormatVersion" type="string" use="required"/>
- <attribute name="vendorName" type="string" use="optional"/>
- <attribute name="dnPrefix" type="string" use="optional"/>
+ <attribute name="fileFormatVersion" type="string" use="required" />
+ <attribute name="vendorName" type="string" use="optional" />
+ <attribute name="dnPrefix" type="string" use="optional" />
</complexType>
</element>
<element name="measData" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
- <element name="measuredEntity">
+ <element name="measEntity">
<complexType>
- <attribute name="userLabel" type="string" use="optional"/>
- <attribute name="localDn" type="string" use="optional"/>
- <attribute name="swVersion" type="string" use="optional"/>
+ <attribute name="userLabel" type="string" use="optional" />
+ <attribute name="localDn" type="string" use="optional" />
+ <attribute name="swVersion" type="string" use="optional" />
</complexType>
</element>
<element name="measInfo" minOccurs="0" maxOccurs="unbounded">
<sequence>
<element name="job" minOccurs="0">
<complexType>
- <attribute name="jobId" type="string" use="required"/>
+ <attribute name="jobId" type="string" use="required" />
</complexType>
</element>
<element name="granPeriod">
<complexType>
- <attribute name="duration" type="duration" use="required"/>
- <attribute name="endTime" type="dateTime" use="required"/>
+ <attribute name="duration" type="duration" use="required" />
+ <attribute name="endTime" type="dateTime" use="required" />
</complexType>
</element>
<element name="repPeriod" minOccurs="0">
<complexType>
- <attribute name="duration" type="duration" use="required"/>
+ <attribute name="duration" type="duration" use="required" />
</complexType>
</element>
<choice>
<element name="measTypes">
<simpleType>
- <list itemType="Name"/>
+ <list itemType="Name" />
</simpleType>
</element>
<element name="measType" minOccurs="0" maxOccurs="unbounded">
<complexType>
<simpleContent>
<extension base="Name">
- <attribute name="p" type="positiveInteger" use="required"/>
+ <attribute name="p" type="positiveInteger" use="required" />
</extension>
</simpleContent>
</complexType>
<choice>
<element name="measResults">
<simpleType>
- <list itemType="md:measResultType"/>
+ <list itemType="md:measResultType" />
</simpleType>
</element>
<element name="r" minOccurs="0" maxOccurs="unbounded">
<complexType>
<simpleContent>
<extension base="md:measResultType">
- <attribute name="p" type="positiveInteger" use="required"/>
+ <attribute name="p" type="positiveInteger" use="required" />
</extension>
</simpleContent>
</complexType>
</element>
</choice>
- <element name="suspect" type="boolean" minOccurs="0"/>
+ <element name="suspect" type="boolean" minOccurs="0" />
</sequence>
- <attribute name="measObjLdn" type="string" use="required"/>
+ <attribute name="measObjLdn" type="string" use="required" />
</complexType>
</element>
</sequence>
- <attribute name="measInfoId" type="string" use="optional"/>
+ <attribute name="measInfoId" type="string" use="optional" />
</complexType>
</element>
</sequence>
<element name="fileFooter">
<complexType>
<sequence>
- <element name="MeasData">
+ <element name="measData">
<complexType>
- <attribute name="endTime" type="dateTime" use="required"/>
+ <attribute name="endTime" type="dateTime" use="required" />
</complexType>
</element>
</sequence>
<union memberTypes="integer float string">
<simpleType>
<restriction base="string">
- <enumeration value="NULL"/>
+ <enumeration value="NULL" />
</restriction>
</simpleType>
</union>
============LICENSE_END=========================================================
-->
<#compress>
-<#assign fileHeader = xml.MeasDataFile.fileHeader>
-<#assign fileFooter = xml.MeasDataFile.fileFooter>
-<#assign measData = xml.MeasDataFile.measData>
+<#assign fileHeader = xml.measDataFile.fileHeader>
+<#assign fileFooter = xml.measDataFile.fileFooter>
+<#assign measData = xml.measDataFile.measData>
<#setting datetime_format="iso">
{
"event": {
"sourceName": "${metadata.sourceName}",
"reportingEntityName": "",
"priority": "Normal",
- "startEpochMicrosec": ${fileHeader.MeasData.@beginTime?datetime?long?c},
- "lastEpochMicrosec": ${fileFooter.MeasData.@endTime?datetime?long?c},
+ "startEpochMicrosec": ${fileHeader.measData.@beginTime?datetime?long?c},
+ "lastEpochMicrosec": ${fileFooter.measData.@endTime?datetime?long?c},
"version": "4.0",
"vesEventListenerVersion": "7.1",
"timeZoneOffset": "${metadata.timeZoneOffset}"
<#macro measDataCollection>
{
"granularityPeriod": ${measData.measInfo.granPeriod.@endTime[0]!?datetime?long?c},
- "measuredEntityUserName": "${measData.measuredEntity.@userLabel[0]!}",
- "measuredEntityDn": "${measData.measuredEntity.@localDn[0]!}",
- "measuredEntitySoftwareVersion": "${measData.measuredEntity.@swVersion[0]!}",
+ "measuredEntityUserName": "${measData.measEntity.@userLabel[0]!}",
+ "measuredEntityDn": "${measData.measEntity.@localDn[0]!}",
+ "measuredEntitySoftwareVersion": "${measData.measEntity.@swVersion[0]!}",
"measInfoList": <@measInfoList/>
}
</#macro>
"measDataCollection": <@measDataCollection/>
}
</#macro>
-</#compress>
\ No newline at end of file
+</#compress>
import org.onap.dcaegen2.services.pmmapper.utils.MeasConverter;
import io.undertow.server.HttpServerExchange;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
import utils.ArgumentCreator;
import utils.EventUtils;
@ExtendWith(MockitoExtension.class)
-@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.parsers.*", "org.xml.*", "javax.management.*"})
class MeasFilterHandlerTest {
private static final Path FILTER_DIRECTORY = Paths.get("src/test/resources/filter_test/");
testEvent.setFilter(generateValidFilter());
return Arguments.of(expectedEvent, testEvent);
};
- return EventUtils.generateEventArguments(FILTER_DIRECTORY, "nr", creator);
+ return EventUtils.generateEventArguments(FILTER_DIRECTORY, creator);
}
return Arguments.of(testEvent);
};
- return EventUtils.generateEventArguments(DATA_DIRECTORY, "/nr", creator);
+ return EventUtils.generateEventArguments(DATA_DIRECTORY, creator);
}
}
\ No newline at end of file
doThrow(new TemplateException(mock(Environment.class))).when(mappingTemplateMock)
.process(any(), any());
HashMap<String, Template> templates = new HashMap<>();
- templates.put("org.3GPP.28.550#measData", mappingTemplateMock);
+ templates.put("org.3GPP.28.532#measData", mappingTemplateMock);
Whitebox.setInternalState(objUnderTest, "templates", templates);
- Path testFile = Paths.get(dataDirectory + "/28.550/no_measdata/test.xml");
+ Path testFile = Paths.get(dataDirectory + "/28.532/no_measdata/test.xml");
Event testEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testFile), fifthGenerationMetadata);
assertThrows(MappingException.class, () -> objUnderTest.map(testEvent));
}
Event testEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testEventPath), eventMetadata);
return Arguments.of(testEvent);
};
- return EventUtils.generateEventArguments(dataDirectory, "/28.550", creator);
+ return EventUtils.generateEventArguments(dataDirectory, creator);
}
}
import org.junit.jupiter.params.provider.Arguments;\r
import org.junit.jupiter.params.provider.MethodSource;\r
\r
+import org.mockito.Mockito;\r
import org.mockito.junit.jupiter.MockitoExtension;\r
import org.onap.dcaegen2.services.pmmapper.model.Event;\r
import org.onap.dcaegen2.services.pmmapper.model.EventMetadata;\r
Event testEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testEventPath), metadata);\r
return Arguments.of(numberOfEvents, measInfoIds, testEvent);\r
};\r
- return EventUtils.generateEventArguments(Paths.get(baseDir), "nr", splitterCreator);\r
+ return EventUtils.generateEventArguments(Paths.get(baseDir), splitterCreator);\r
}\r
}\r
EventUtils.fileContentsToString(testEventPath), metadata, new HashMap<>(), "");
return Arguments.of(valid, testEvent);
};
- return EventUtils.generateEventArguments(dataDirectory, "nr", creator);
+ return EventUtils.generateEventArguments(dataDirectory, creator);
}
}
import com.google.gson.Gson;
import io.undertow.server.HttpServerExchange;
+
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class EventUtils {
+ private static final String LTE_QUALIFIER = File.separator + "lte";
+ private static final String NR_QUALIFIER = File.separator + "nr";
/**
* Reads contents of files inside the eventBodyDirectory, combines contents with metadata to make an Event Object.
.map(contents -> EventUtils.makeMockEvent(contents, eventMetadata))
.collect(Collectors.toList());
}
+
/**
* Create a List of Arguments containing an Event (Defaults to LTE events), and an expected outcome.
* Fails test in the event of failure to read a file.
* @param baseDirectory Directory containing multiple formats of events separated by a directory.
- * @param nrQualifier String representing a unique part of the path that will exist only in the NR path.
* @param argCreator Callback to method that will generate the appropriate set of arguments for each test.
*/
- public static List<Arguments> generateEventArguments(Path baseDirectory, String nrQualifier, ArgumentCreator argCreator ) {
+ public static List<Arguments> generateEventArguments(Path baseDirectory, ArgumentCreator argCreator ) {
List<Arguments> events = new ArrayList<>();
try (Stream<Path> paths = Files.list(baseDirectory)) {
paths.filter(Files::isDirectory).forEach(path -> {
- String fileFormatType = path.toString().contains(nrQualifier) ? MeasConverter.NR_FILE_TYPE : MeasConverter.LTE_FILE_TYPE;
+ String fileFormatType = readFileFormatFromPath(path.toString());
EventMetadata eventMetadata = new EventMetadata();
eventMetadata.setFileFormatType(fileFormatType);
events.addAll(getEventsArgument(path, eventMetadata, argCreator));
return events;
}
+ private static String readFileFormatFromPath(String path) {
+ if (path.contains(NR_QUALIFIER)) {
+ return MeasConverter.NR_FILE_TYPE;
+ }
+ else if (path.contains(LTE_QUALIFIER)) {
+ return MeasConverter.LTE_FILE_TYPE;
+ }
+ else {
+ return MeasConverter.NOT_SUPPORTED_TYPE;
+ }
+ }
+
/**
* reads contents of file into a string.
* fails a tests in the event failure occurs.
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>
+ <measEntity localDn="Dublin" swVersion="r0.1"/>
<measInfo measInfoId="some measInfoId">
<job jobId="jobId"/>
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>
+ <measEntity localDn="Dublin" swVersion="r0.1"/>
<measInfo measInfoId="some measInfoId">
<job jobId="jobId"/>
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="this will be filtered out">
<job jobId="jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">\r
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">\r
<fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix">\r
<fileSender senderName="Dublin"/>\r
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>\r
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>\r
</fileHeader>\r
<measData>\r
- <measuredEntity localDn="Dublin" swVersion="r0.1"/>\r
+ <measEntity localDn="Dublin" swVersion="r0.1"/>\r
<measInfo measInfoId="some measInfoId">\r
<job jobId="jobId"/>\r
<granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/>\r
</measInfo>\r
</measData>\r
<fileFooter>\r
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>\r
+ <measData endTime="2018-10-02T12:15:00+01:00"/>\r
</fileFooter>\r
-</MeasDataFile>
\ No newline at end of file
+</measDataFile>
\ No newline at end of file
"type": "object",
"properties": {
"formatVersion": {
- "description": "3gpp PM reporting file format version from pre-standard TS 28.550 v2.0.0",
+ "description": "3gpp PM reporting file format version from pre-standard TS 28.532 v2.0.0",
"type": "string"
},
"granularityPeriod": {
"items": { "type": "string" }
},
"measuredEntityDn": {
- "description": "distinguished name per 3GPP TS 28.550",
+ "description": "distinguished name per 3GPP TS 28.532",
"type": "string"
},
"measuredEntitySoftwareVersion": {
- "description": "software version for the NF providing the PM data as specified in 3GPP TS 28.550",
+ "description": "software version for the NF providing the PM data as specified in 3GPP TS 28.532",
"type": "string"
},
"measuredEntityUserName": {
- "description": "user definable name for the measured object per 3GPP TS 28.550",
+ "description": "user definable name for the measured object per 3GPP TS 28.532",
"type": "string"
}
},
"required": [ "otherFieldsVersion" ]
},
"perf3gppFields": {
- "description": "fields for 3GPP PM format events, based on 3GPP TS 28.550, belonging to the 'perf3gpp' domain of the commonEventHeader domain enumeration",
+ "description": "fields for 3GPP PM format events, based on 3GPP TS 28.532, belonging to the 'perf3gpp' domain of the commonEventHeader domain enumeration",
"type": "object",
"properties": {
"eventAddlFields": {"$ref": "#/definitions/hashMap"},
"timeZoneOffset": "UTC+05.00",
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
+ "fileFormatType": "org.3GPP.28.532#measData",
"fileFormatVersion": "V9"
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
+ fileFormatVersion="28.532 V1">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
"timeZoneOffset": "UTC+05.00",
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
+ "fileFormatType": "org.3GPP.28.532#measData",
"fileFormatVersion": "V9"
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
+ fileFormatVersion="28.532 V1">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="some Job Id"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
"timeZoneOffset": "UTC+05.00",
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
+ "fileFormatType": "org.3GPP.28.532#measData",
"fileFormatVersion": "V9"
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
+ fileFormatVersion="28.532 V1">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="some Job Id"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
"timeZoneOffset": "UTC+05.00",
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
+ "fileFormatType": "org.3GPP.28.532#measData",
"fileFormatVersion": "V9"
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
+ fileFormatVersion="28.532 V1">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
--- /dev/null
+{
+ "productName": "NrRadio",
+ "vendorName": "Ericsson",
+ "lastEpochMicrosec": "1538478000000",
+ "sourceName": "oteNB5309",
+ "startEpochMicrosec": "1538478900000",
+ "timeZoneOffset": "UTC+05.00",
+ "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
+ "compression": "gzip",
+ "fileFormatType": "org.3GPP.28.532#measData",
+ "fileFormatVersion": "V9"
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
+ <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
+ fileFormatVersion="28.532 V1">
+ <fileSender senderName="Dublin"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
+ </fileHeader>
+ <fileFooter>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
+ </fileFooter>
+</measDataFile>
--- /dev/null
+{
+ "productName": "NrRadio",
+ "vendorName": "Ericsson",
+ "lastEpochMicrosec": "1538478000000",
+ "sourceName": "oteNB5309",
+ "startEpochMicrosec": "1538478900000",
+ "timeZoneOffset": "UTC+05.00",
+ "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
+ "compression": "gzip",
+ "fileFormatType": "org.3GPP.28.532#measData",
+ "fileFormatVersion": "V9"
+}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
+ fileFormatVersion="28.532 V1">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity localDn="Dublin"/>
+ <measEntity localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="some Job Id"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
+++ /dev/null
-{
- "productName": "NrRadio",
- "vendorName": "Ericsson",
- "lastEpochMicrosec": "1538478000000",
- "sourceName": "oteNB5309",
- "startEpochMicrosec": "1538478900000",
- "timeZoneOffset": "UTC+05.00",
- "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
- "compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
- "fileFormatVersion": "V9"
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
- <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
- fileFormatVersion="28.550 V1">
- <fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
- </fileHeader>
- <fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
- </fileFooter>
-</MeasDataFile>
+++ /dev/null
-{
- "productName": "NrRadio",
- "vendorName": "Ericsson",
- "lastEpochMicrosec": "1538478000000",
- "sourceName": "oteNB5309",
- "startEpochMicrosec": "1538478900000",
- "timeZoneOffset": "UTC+05.00",
- "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
- "compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
- "fileFormatVersion": "V9"
-}
\ No newline at end of file
"timeZoneOffset": "UTC+05.00",
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
- "fileFormatType": "org.3GPP.28.550#measData",
+ "fileFormatType": "org.3GPP.28.532#measData",
"fileFormatVersion": "V9"
}
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="Singular measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin1"/>
+ <measEntity swVersion="r0.1" localDn="Dublin1"/>
<measInfo measInfoId="First measInfoId">
<job jobId="jobId1"/>
<granPeriod endTime="2001-10-02T12:15:00Z" duration="PT100S"/>
</measInfo>
</measData>
<measData>
- <measuredEntity swVersion="r0.2" localDn="Dublin2"/>
+ <measEntity swVersion="r0.2" localDn="Dublin2"/>
<measInfo measInfoId="Second measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2002-10-02T12:15:00Z" duration="PT200S"/>
</measInfo>
</measData>
<measData>
- <measuredEntity swVersion="r0.3" localDn="Dublin3"/>
+ <measEntity swVersion="r0.3" localDn="Dublin3"/>
<measInfo measInfoId="Third measInfoId">
<job jobId="jobId"/>
<granPeriod endTime="2003-10-02T12:15:00Z" duration="PT300S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
--- /dev/null
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <measData>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
+ <measInfo measInfoId="some meas info id">
+ <job jobId="some jobId"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">a</measType>
+ <measType p="2">b</measType>
+ <measType p="3">c</measType>
+ <measValue measObjLdn="some measObjLdn">
+ <r p="1">86</r>
+ <r p="2">67</r>
+ <r p="3">14</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ </measData>
+ <fileFooter>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
+ </fileFooter>
+</measDataFile>
--- /dev/null
+valid=false
\ No newline at end of file
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<measData>
- <measuredEntity swVersion="r0.1" localDn="Dublin"/>
+ <measEntity swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some meas info id">
<job jobId="some jobId"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>
<?xml version="1.0" encoding="UTF-8"?>
-<MeasDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.550#measData">
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData">
<fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender senderName="Dublin"/>
- <MeasData beginTime="2018-10-02T12:00:00+01:00"/>
+ <measData beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
<measInfo measInfoId="some measInfoId">
</measInfo>
</measData>
<fileFooter>
- <MeasData endTime="2018-10-02T12:15:00+01:00"/>
+ <measData endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
-</MeasDataFile>
+</measDataFile>