XBRL.php
private function processNonDimensionalLink( &$link, $linkbase, $role, &$standardRoles, &$arcroleRefs, $href, $xml_basename, $arcName = 'definitionArc', $arcTitle = 'Definition' )
	{
		// Detection of duplicate from/to pairs only applies within an extended link so reset this varaible in each new link
		$this->resetValidateFromToArcPairs();

		// Get a list of the locators for this extended link
		$locators = $this->retrieveLocators( $link, $linkbase, $href );
		if ( ! count( $locators ) ) return;

		// Used to catch duplicated from/to label pairs which is not alloed by the XLink specification
		$fromToPairs = array();

		foreach ( $link->children( XBRL_Constants::$standardPrefixes[ STANDARD_PREFIX_LINK ] )->$arcName as $arcKey => $arc )
		{
			$xlinkAttributes = $arc->attributes( XBRL_Constants::$standardPrefixes[ STANDARD_PREFIX_XLINK ] );
			$attributes = $arc->attributes();
			if ( ! $this->validateXLinkArcAttributes( $xlinkAttributes, $linkbase ) )
			{
				continue;
			}

			if ( isset( $fromToPairs[ (string)$xlinkAttributes->from ][ (string)$xlinkAttributes->to ] ) )
			{
				$this->log()->taxonomy_validation( "XLink", "$arcTitle arcs contain repeated from/to label pairs in the same extended link",
					array(
						'role' => $role,
						'from' => (string)$xlinkAttributes->from,
						'to' => (string)$xlinkAttributes->to
					)
				);
			}
			else
			{
				$fromToPairs[ (string)$xlinkAttributes->from ][ (string)$xlinkAttributes->to ] = 1;
			}

			$this->processNonDimensionalArc( $arc, $locators, $linkbase, $role, $xlinkAttributes, $attributes, $standardRoles, $arcroleRefs, $xml_basename, $arcTitle );
		}
	}
private function processNonDimensionalLink( &$link, $linkbase, $role, &$standardRoles, &$arcroleRefs, $href, $xml_basename, $arcName = 'definitionArc', $arcTitle = 'Definition' )
	{
		// Detection of duplicate from/to pairs only applies within an extended link so reset this varaible in each new link
		$this->resetValidateFromToArcPairs();

		// Get a list of the locators for this extended link
		$locators = $this->retrieveLocators( $link, $linkbase, $href );
		if ( ! count( $locators ) ) return;

		// Used to catch duplicated from/to label pairs which is not alloed by the XLink specification
		$fromToPairs = array();

		foreach ( $link->children( XBRL_Constants::$standardPrefixes[ STANDARD_PREFIX_LINK ] )->$arcName as $arcKey => $arc )
		{
			$xlinkAttributes = $arc->attributes( XBRL_Constants::$standardPrefixes[ STANDARD_PREFIX_XLINK ] );
			$attributes = $arc->attributes();
			if ( ! $this->validateXLinkArcAttributes( $xlinkAttributes, $linkbase ) )
			{
				continue;
			}

			if ( isset( $fromToPairs[ (string)$xlinkAttributes->from ][ (string)$xlinkAttributes->to ] ) )
			{
				$this->log()->taxonomy_validation( "XLink", "$arcTitle arcs contain repeated from/to label pairs in the same extended link",
					array(
						'role' => $role,
						'from' => (string)$xlinkAttributes->from,
						'to' => (string)$xlinkAttributes->to
					)
				);
			}
			else
			{
				$fromToPairs[ (string)$xlinkAttributes->from ][ (string)$xlinkAttributes->to ] = 1;
			}

			$this->processNonDimensionalArc( $arc, $locators, $linkbase, $role, $xlinkAttributes, $attributes, $standardRoles, $arcroleRefs, $xml_basename, $arcTitle );
		}
	}
private function processNonDimensionalLink ( & $ link , $ linkbase , $ role , & $ standardRoles , & $ arcroleRefs , $ href , $ xml_basename , $ arcName = 'definitionArc' , $ arcTitle = 'Definition' ) { // Detection of duplicate from/to pairs only applies within an extended link so reset this varaible in each new link
 $ this -> resetValidateFromToArcPairs ( ) ; // Get a list of the locators for this extended link
 $ locators = $ this -> retrieveLocators ( $ link , $ linkbase , $ href ) ; if ( ! count ( $ locators ) ) return ; // Used to catch duplicated from/to label pairs which is not alloed by the XLink specification
 $ fromToPairs = array ( ) ; foreach ( $ link -> children ( XBRL_Constants :: $ standardPrefixes [ STANDARD_PREFIX_LINK ] ) -> $ arcName as $ arcKey => $ arc ) { $ xlinkAttributes = $ arc -> attributes ( XBRL_Constants :: $ standardPrefixes [ STANDARD_PREFIX_XLINK ] ) ; $ attributes = $ arc -> attributes ( ) ; if ( ! $ this -> validateXLinkArcAttributes ( $ xlinkAttributes , $ linkbase ) ) { continue ; } if ( isset ( $ fromToPairs [ ( string ) $ xlinkAttributes -> from ] [ ( string ) $ xlinkAttributes -> to ] ) ) { $ this -> log ( ) -> taxonomy_validation ( "XLink" , "$arcTitle arcs contain repeated from/to label pairs in the same extended link" , array ( 'role' => $ role , 'from' => ( string ) $ xlinkAttributes -> from , 'to' => ( string ) $ xlinkAttributes -> to ) ) ; } else { $ fromToPairs [ ( string ) $ xlinkAttributes -> from ] [ ( string ) $ xlinkAttributes -> to ] = 1 ; } $ this -> processNonDimensionalArc ( $ arc , $ locators , $ linkbase , $ role , $ xlinkAttributes , $ attributes , $ standardRoles , $ arcroleRefs , $ xml_basename , $ arcTitle ) ; } }
Process a specifc link for essensce-alias and requires-element

@param SimpleXMLElement $link
@param string $linkbase The base name of the link such as 'calculation'
@param string $role
@param array $standardRoles A list of the roles that are valid for this link type
@param array $arcroleRefs
@param string $href The name of the file containing $link
@param string $xml_basename
@param string $arcName
@param string $arcTitle
return void
Process a specifc link for essensce - alias and requires - element