XBRL-Instance.php
private function validateRequiresElementArcs( XBRL_Types &$types )
	{

		$arcs = $this->getInstanceTaxonomy()->getRequireElementsList();
		if ( ! $arcs ) return true;

		foreach ( $arcs as $from => $targets )
		{
			// echo "$from";

			// If the $from exists then the $to exists
			$parts = parse_url( $from );
			if ( ! isset( $parts['path'] ) || ! isset( $parts['fragment'] ) ) continue;

			$fromTaxonomy = $this->getInstanceTaxonomy()->getTaxonomyForXSD( $parts['path'] );
			if ( ! $fromTaxonomy )
			{
				$this->log()->instance_validation( "5.2.6.2.4", "The taxonomy of the source does not exist in the DTS",
					array(
						'from' => $from,
					)
				);
				continue;
			}

			$fromElement = $fromTaxonomy->getElementById( $parts['fragment'] );
			if ( ! $fromElement )
			{
				$this->log()->instance_validation( "5.2.6.2.4", "The concept of the source does not exist in the DTS",
					array(
						'from' => $from,
					)
				);
				continue;
			}

			// Look for the fact in the instance document
			$fromFact = $this->getElement( $fromElement['id'] );

			// If the $from does not exist there is noting else to do
			if ( ! $fromFact ) continue;

			foreach ( $targets as $target => $details )
			{
				// echo " -> $target\n";

				$parts = parse_url( $target );
				if ( ! isset( $parts['path'] ) || ! isset( $parts['fragment'] ) ) continue;

				$toTaxonomy = $this->getInstanceTaxonomy()->getTaxonomyForXSD( $parts['path'] );
				if ( ! $toTaxonomy )
				{
					$this->log()->instance_validation( "5.2.6.2.4", "The taxonomy of the target does not exist in the DTS",
						array(
							'from' => $from,
						)
					);
					continue;
				}

				$toElement = $toTaxonomy->getElementById( $parts['fragment'] );
				if ( ! $toElement )
				{
					$this->log()->instance_validation( "5.2.6.2.4", "The concept of the target does not exist in the DTS",
						array(
							'to' => $to,
						)
					);
					continue;
				}

				// Look for the fact in the instance document
				$toFact = $this->getElement( $toElement['id'] );

				// If the $from does not exist there is noting else to do
				if ( $toFact ) continue;

				// The $from exist but the $to does not so report the error.
				$this->log()->instance_validation( "5.2.6.2.4", "The required source fact exists but the target one does not exist.",
					array(
						'from' => $from,
						'to' => $target,
					)
				);

			}
		}
	}
private function validateRequiresElementArcs( XBRL_Types &$types )
	{

		$arcs = $this->getInstanceTaxonomy()->getRequireElementsList();
		if ( ! $arcs ) return true;

		foreach ( $arcs as $from => $targets )
		{
			// echo "$from";

			// If the $from exists then the $to exists
			$parts = parse_url( $from );
			if ( ! isset( $parts['path'] ) || ! isset( $parts['fragment'] ) ) continue;

			$fromTaxonomy = $this->getInstanceTaxonomy()->getTaxonomyForXSD( $parts['path'] );
			if ( ! $fromTaxonomy )
			{
				$this->log()->instance_validation( "5.2.6.2.4", "The taxonomy of the source does not exist in the DTS",
					array(
						'from' => $from,
					)
				);
				continue;
			}

			$fromElement = $fromTaxonomy->getElementById( $parts['fragment'] );
			if ( ! $fromElement )
			{
				$this->log()->instance_validation( "5.2.6.2.4", "The concept of the source does not exist in the DTS",
					array(
						'from' => $from,
					)
				);
				continue;
			}

			// Look for the fact in the instance document
			$fromFact = $this->getElement( $fromElement['id'] );

			// If the $from does not exist there is noting else to do
			if ( ! $fromFact ) continue;

			foreach ( $targets as $target => $details )
			{
				// echo " -> $target\n";

				$parts = parse_url( $target );
				if ( ! isset( $parts['path'] ) || ! isset( $parts['fragment'] ) ) continue;

				$toTaxonomy = $this->getInstanceTaxonomy()->getTaxonomyForXSD( $parts['path'] );
				if ( ! $toTaxonomy )
				{
					$this->log()->instance_validation( "5.2.6.2.4", "The taxonomy of the target does not exist in the DTS",
						array(
							'from' => $from,
						)
					);
					continue;
				}

				$toElement = $toTaxonomy->getElementById( $parts['fragment'] );
				if ( ! $toElement )
				{
					$this->log()->instance_validation( "5.2.6.2.4", "The concept of the target does not exist in the DTS",
						array(
							'to' => $to,
						)
					);
					continue;
				}

				// Look for the fact in the instance document
				$toFact = $this->getElement( $toElement['id'] );

				// If the $from does not exist there is noting else to do
				if ( $toFact ) continue;

				// The $from exist but the $to does not so report the error.
				$this->log()->instance_validation( "5.2.6.2.4", "The required source fact exists but the target one does not exist.",
					array(
						'from' => $from,
						'to' => $target,
					)
				);

			}
		}
	}
private function validateRequiresElementArcs ( XBRL_Types & $ types ) { $ arcs = $ this -> getInstanceTaxonomy ( ) -> getRequireElementsList ( ) ; if ( ! $ arcs ) return true ; foreach ( $ arcs as $ from => $ targets ) { // echo "$from";
 // If the $from exists then the $to exists
 $ parts = parse_url ( $ from ) ; if ( ! isset ( $ parts [ 'path' ] ) || ! isset ( $ parts [ 'fragment' ] ) ) continue ; $ fromTaxonomy = $ this -> getInstanceTaxonomy ( ) -> getTaxonomyForXSD ( $ parts [ 'path' ] ) ; if ( ! $ fromTaxonomy ) { $ this -> log ( ) -> instance_validation ( "5.2.6.2.4" , "The taxonomy of the source does not exist in the DTS" , array ( 'from' => $ from , ) ) ; continue ; } $ fromElement = $ fromTaxonomy -> getElementById ( $ parts [ 'fragment' ] ) ; if ( ! $ fromElement ) { $ this -> log ( ) -> instance_validation ( "5.2.6.2.4" , "The concept of the source does not exist in the DTS" , array ( 'from' => $ from , ) ) ; continue ; } // Look for the fact in the instance document
 $ fromFact = $ this -> getElement ( $ fromElement [ 'id' ] ) ; // If the $from does not exist there is noting else to do
 if ( ! $ fromFact ) continue ; foreach ( $ targets as $ target => $ details ) { // echo " -> $target\n";
 $ parts = parse_url ( $ target ) ; if ( ! isset ( $ parts [ 'path' ] ) || ! isset ( $ parts [ 'fragment' ] ) ) continue ; $ toTaxonomy = $ this -> getInstanceTaxonomy ( ) -> getTaxonomyForXSD ( $ parts [ 'path' ] ) ; if ( ! $ toTaxonomy ) { $ this -> log ( ) -> instance_validation ( "5.2.6.2.4" , "The taxonomy of the target does not exist in the DTS" , array ( 'from' => $ from , ) ) ; continue ; } $ toElement = $ toTaxonomy -> getElementById ( $ parts [ 'fragment' ] ) ; if ( ! $ toElement ) { $ this -> log ( ) -> instance_validation ( "5.2.6.2.4" , "The concept of the target does not exist in the DTS" , array ( 'to' => $ to , ) ) ; continue ; } // Look for the fact in the instance document
 $ toFact = $ this -> getElement ( $ toElement [ 'id' ] ) ; // If the $from does not exist there is noting else to do
 if ( $ toFact ) continue ; // The $from exist but the $to does not so report the error.
 $ this -> log ( ) -> instance_validation ( "5.2.6.2.4" , "The required source fact exists but the target one does not exist." , array ( 'from' => $ from , 'to' => $ target , ) ) ; } } }
Validate any requires element arcs

@param XBRL_Types $types
@return boolean
Validate any requires element arcs