Exemple #1
0
 public function addElement(parser\element $element, $iPosition = null)
 {
     if (!$element->getNamespace()) {
         $this->launchException('Element not valid, no namespace defined');
     }
     if (isset($this->aElements[$element->getNamespace()][$element->getName()])) {
         $this->launchException('Element ever registered', get_defined_vars());
     }
     $element->setPosition($iPosition);
     $element->setParticle($this);
     $this->aElements[$element->getNamespace()][$element->getName()] = $element;
     if (is_null($iPosition)) {
         $iPosition = count($this->aElementsIndexed);
     }
     $this->aElementsIndexed[$iPosition] = $element;
 }
Exemple #2
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;
 }
Exemple #3
0
 protected function addElement(parser\element $element)
 {
     $this->aElements[$element->getNamespace()][$element->getName()] = $element;
     return $element;
 }