/** * Load all of the @XmlElement annotations * * @param ClassMetadata $metadata */ protected function loadClassElements(ClassMetadata $metadata) { $reflClass = $metadata->getReflectionClass(); foreach ($reflClass->getProperties() as $property) { foreach ($this->reader->getPropertyAnnotations($property) as $annotation) { if ($annotation instanceof XmlElement) { $nodeName = !is_null($annotation->name) ? $annotation->name : $property->getName(); if (is_null($annotation->type)) { $metadata->addElement($nodeName, $property->getName()); } else { $embeddedMetadata = new ClassMetadata($annotation->type); $this->loadClassMetadata($embeddedMetadata); $metadata->addEmbed($nodeName, $property->getName(), $embeddedMetadata); } } } } }