public function toStore( $encode = false, $prettyPrint = false )
	{
		$store = array(
			'elementIndex'				=> &$this->elementIndex,
			'elementHypercubes' 		=> &$this->elementHypercubes,
			'elementDimensions' 		=> &$this->elementDimensions,
			'schemaLocation'			=> &$this->schemaLocation,
			'namespace'					=> &$this->namespace,
			'roleTypes'					=> &$this->roleTypes,
			'roleTypeIds'				=> &$this->roleTypeIds,
			'arcroleTypes'				=> &$this->arcroleTypes,
			'arcroleTypeIds'			=> &$this->arcroleTypeIds,
			'linkbaseTypes'				=> &$this->linkbaseTypes,
			'definitionRoleRefs'		=> &$this->definitionRoleRefs,
			'referenceRoleRefs'			=> &$this->referenceRoleRefs,
			'xdtTargetRoles'			=> &$this->xdtTargetRoles,
			'stringsLoaded'				=> $this->stringsAreLoaded(),
			'documentPrefixes'			=> $this->documentPrefixes,
			'genericRoles'				=> $this->genericRoles,
			'variableSetNames'			=> $this->variableSetNames,
			'linkbaseIds'				=> $this->linkbaseIds,
			'hasFormulas'				=> $this->hasFormulas,
			'linkbases'					=> $this->linkbases,
			'foreignDefinitionRoleRefs'	=> &$this->foreignDefinitionRoleRefs,
		);

		if ( $this->context->isExtensionTaxonomy() && $this->extraElements )
		{
			$store['extraElements'] = $this->extraElements;
		}

		return $encode
			? json_encode( $store, $prettyPrint ? JSON_PRETTY_PRINT : null )
			: $store;
	}