dongqianzhan8325 2019-01-28 17:08
浏览 16

如何在JMS Serializer SubscribingHandler中查找元数据?

I am trying to deserialize a xml string inside of a SubscribingHandler, based on a xml property on the root node, but I can't seem to find the right way to do it.

Let's have a look at this piece of pseudo code:

<?php
class FormulierWaardeHandler implements SubscribingHandlerInterface
{
    private const TYPE_NAMESPACE = 'http://www.w3.org/2001/XMLSchema-instance';
    private const TYPE_ATTRIBUTE = 'type';

    public static function getSubscribingMethods()
    {
        return array(
            array(
                'direction' => GraphNavigator::DIRECTION_DESERIALIZATION,
                'format' => 'xml',
                'type' => WaardeType::class,
                'method' => 'deserializeWaardeType'
            ),
        );
    }

    public function deserializeWaardeType(
        XmlDeserializationVisitor $visitor,
        \SimpleXMLElement $data,
        array $type,
        DeserializationContext $context
    ) {
        $domElement = dom_import_simplexml($data);

        $typeName = $domElement->getAttributeNS(self::TYPE_NAMESPACE, self::TYPE_ATTRIBUTE);
        $type['name'] = $typeName;


//            '<formulier2data:Waarde i:type="formulier2data:DatumTijd"><formulier2data:Datum>2023-07-17T02:00:00+02:00</formulier2data:Datum></formulier2data:Waarde>',

    // TODO: deserialize above piece of xml so that it matches the i:type metadata

//        return new DatumTijd($datum);
    }
}

I need to get the metadata for the DatumTijd type, or whatever other type that is defined there. I already have all necessary mapping data in ./metadata/{types}.yml, but I cannot figure out how to match them and return the right type.

Any help would be much appreciated.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 Revit2020下载问题
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
    • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
    • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
    • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
    • ¥15 如何在炒股软件中,爬到我想看的日k线