def update(self, request, *args, **kwargs):
        partial = kwargs.pop('partial', False)
        instance = self.get_object()
        serializer = self.get_serializer(instance, data=request.data, partial=partial)
        serializer.is_valid(raise_exception=True)

        bpmn = serializer.validated_data['xml']
        bpmn = ET.parse(io.StringIO(bpmn))
        validator = Validator(bpmn)
        if (len(validator.validate_diagram()) == 0):
            serializer.validated_data['is_valid_form'] = True
        else:
            serializer.validated_data['is_valid_form'] = False

        self.perform_update(serializer)
        return Response(serializer.data)
    def create(self, request, **kwargs):
        serializer = self.serializer_class(data=request.data)

        if serializer.is_valid():
            bpmn = serializer.validated_data['xml']
            bpmn = ET.parse(io.StringIO(bpmn))
            validator = Validator(bpmn)
            if (len(validator.validate_diagram()) == 0):
                serializer.validated_data['is_valid_form'] = True
            else:
                serializer.validated_data['is_valid_form'] = False

            serializer.create(serializer.validated_data, request=request)
            return Response(serializer.validated_data, status=status.HTTP_201_CREATED)
        return Response({
                            'message': serializer.errors,
                            'status': 'Bad request',
                        }, status=status.HTTP_400_BAD_REQUEST)