Exemple #1
0
 public function getWeightSchema(schema_ns\parser\element $element, $sMode, $sXMode, $bRoot = false)
 {
     $iResult = 0;
     if ($this->getMatch() || $bRoot) {
         if (!$this->getMatch()) {
             if ($bRoot && $sMode === $this->getMode() && $this->checkXMode($sXMode)) {
                 $iResult = self::WEIGHT_ELEMENT_ROOT;
                 if ($this->getXMode() && $this->getXMode() === $sXMode) {
                     $iResult += 1;
                 }
             }
         } else {
             if ($sMode === $this->getMode() && $this->checkXMode($sXMode)) {
                 $iElement = $this->getWeightName($element->getNamespace(), $element->getName());
                 if ($type = $element->getType()) {
                     $iType = $this->getWeightType($type);
                     $iResult = $iType > $iElement ? $iType : $iElement;
                     if ($this->getXMode() && $this->getXMode() === $sXMode) {
                         $iResult += 1;
                     }
                 } else {
                     $iResult = $iElement;
                 }
             }
         }
     }
     return $iResult;
 }