|
@@ -44,9 +44,14 @@ class RefConfig {
|
|
|
SchemaVersionUpgrade::upgradeSchema();
|
|
SchemaVersionUpgrade::upgradeSchema();
|
|
|
|
|
|
|
|
$rootObjectNamespace = ACL::getBaseNamespace($rootObjectNamespace);
|
|
$rootObjectNamespace = ACL::getBaseNamespace($rootObjectNamespace);
|
|
|
|
|
+
|
|
|
|
|
+ $rootAcl = ACL::getAclByNamespace($rootObjectNamespace);
|
|
|
|
|
+ if (!($rootAcl instanceof AntAclBase)) throw new Exception("Ref allowed only for AntAcl objects");
|
|
|
|
|
+ // $fieldInfo = $rootAcl->_getField($childName); // throws Exception if field not exists
|
|
|
|
|
+ $childFieldXsdType = $rootAcl->getXsdFieldType($childName); // throws Exception if field not exists
|
|
|
|
|
+
|
|
|
if (!$childNamespace && false !== strpos($childName, '__x3A__') && false !== strpos($childName, ':')) $childNamespace = Api_WfsNs::namespaceFromTypeName($childName);
|
|
if (!$childNamespace && false !== strpos($childName, '__x3A__') && false !== strpos($childName, ':')) $childNamespace = Api_WfsNs::namespaceFromTypeName($childName);
|
|
|
if (!$childNamespace) {
|
|
if (!$childNamespace) {
|
|
|
- $rootAcl = ACL::getAclByNamespace($rootObjectNamespace);
|
|
|
|
|
$childXsdType = $rootAcl->getXsdFieldType($childName);
|
|
$childXsdType = $rootAcl->getXsdFieldType($childName);
|
|
|
list($typePrefix, $childTypeName) = explode(':', $childXsdType, 2);
|
|
list($typePrefix, $childTypeName) = explode(':', $childXsdType, 2);
|
|
|
$childNamespace = Api_WfsNs::namespaceFromTypeName($childTypeName);
|
|
$childNamespace = Api_WfsNs::namespaceFromTypeName($childTypeName);
|