|
13 | 13 | use Flat3\Lodata\Type\Byte;
|
14 | 14 | use Flat3\Lodata\Type\Collection;
|
15 | 15 | use Flat3\Lodata\Type\Enum;
|
| 16 | +use Flat3\Lodata\Type\PropertyPath; |
16 | 17 | use Flat3\Lodata\Type\String_;
|
17 | 18 | use SimpleXMLElement;
|
18 | 19 |
|
@@ -58,6 +59,10 @@ public function appendJsonValue($value)
|
58 | 59 | case $value instanceof Record:
|
59 | 60 | $record = (object) [];
|
60 | 61 |
|
| 62 | + if (method_exists($value, 'getTypeName') && $value->getTypeName()) { |
| 63 | + $record->{'@type'} = $value->getTypeName(); |
| 64 | + } |
| 65 | + |
61 | 66 | /** @var PropertyValue $propertyValue */
|
62 | 67 | foreach ($value as $propertyValue) {
|
63 | 68 | $record->{$propertyValue->getProperty()->getName()} = $this->appendJsonValue($propertyValue->getPrimitive());
|
@@ -109,6 +114,10 @@ protected function appendXmlValue(SimpleXMLElement $element, $value)
|
109 | 114 | $element->addAttribute('Int', $value->toUrl());
|
110 | 115 | break;
|
111 | 116 |
|
| 117 | + case $value instanceof PropertyPath: |
| 118 | + $element->addAttribute('PropertyPath', $value->get()); |
| 119 | + break; |
| 120 | + |
112 | 121 | case $value instanceof String_:
|
113 | 122 | $element->addAttribute('String', $value->get());
|
114 | 123 | break;
|
@@ -147,6 +156,10 @@ protected function appendXmlValue(SimpleXMLElement $element, $value)
|
147 | 156 | protected function appendXmlRecord(SimpleXMLElement $element, Record $record)
|
148 | 157 | {
|
149 | 158 | $recordElement = $element->addChild('Record');
|
| 159 | + $identifier = $record->getIdentifier(); |
| 160 | + if (!is_null($identifier)) { |
| 161 | + $recordElement->addAttribute('Type', $identifier->getQualifiedName()); |
| 162 | + } |
150 | 163 |
|
151 | 164 | /** @var PropertyValue $propertyValue */
|
152 | 165 | foreach ($record as $propertyValue) {
|
|
0 commit comments