public function addTagDef(TagDef $tag)
 {
     if (array_key_exists($tag->Id, $this->fields['TagDefs'])) {
         throw new SchemaException('Tag with id [' . $tag->Id . '] already exists in schema');
     }
     if ($tag->isTreeorigin()) {
         $this->fields['TreeOriginTagDef'] = $tag;
     }
     $this->fields['TagDefs'][$tag->Id] = $tag;
     return $this;
 }