public function getNodeDefinitionFromXml(DOMElement $node)
{
$data = $this->getItemDefinitionFromXml($node);
// node
$data['allowsSameNameSiblings'] = Helper::getBoolAttribute($node, 'sameNameSiblings');
$data['defaultPrimaryTypeName'] = $node->getAttribute('defaultPrimaryType') ?: null;
$xp = new DOMXPath($node->ownerDocument);
$requiredPrimaryTypes = $xp->query('requiredPrimaryTypes/requiredPrimaryType', $node);
if (0 < $requiredPrimaryTypes->length) {
foreach ($requiredPrimaryTypes as $requiredPrimaryType) {
$data['requiredPrimaryTypeNames'][] = $requiredPrimaryType->nodeValue;
}
} else {
$data['requiredPrimaryTypeNames'] = array(self::DEFAULT_PRIMARY_NODE);
}
return $data;
}