/** * Create the XAV request. * * @return string */ private function createRequest() { $xml = new DOMDocument(); $xml->formatOutput = true; $avRequest = $xml->appendChild($xml->createElement('AddressValidationRequest')); $avRequest->setAttribute('xml:lang', 'en-US'); $request = $avRequest->appendChild($xml->createElement('Request')); $node = $xml->importNode($this->createTransactionNode(), true); $request->appendChild($node); $request->appendChild($xml->createElement('RequestAction', 'XAV')); if (null !== $this->requestOption) { $request->appendChild($xml->createElement('RequestOption', $this->requestOption)); } if (null !== $this->maxSuggestion) { $avRequest->appendChild($xml->createElement('MaximumListSize', $this->maxSuggestion)); } if (null !== $this->address) { $addressNode = $avRequest->appendChild($xml->createElement('AddressKeyFormat')); if ($this->address->getAttentionName()) { $addressNode->appendChild($xml->createElement('ConsigneeName', $this->address->getAttentionName())); } if ($this->address->getBuildingName()) { $addressNode->appendChild($xml->createElement('BuildingName', $this->address->getBuildingName())); } if ($this->address->getAddressLine1()) { $addressNode->appendChild($xml->createElement('AddressLine', $this->address->getAddressLine1())); } if ($this->address->getAddressLine2()) { $addressNode->appendChild($xml->createElement('AddressLine', $this->address->getAddressLine2())); } if ($this->address->getAddressLine3()) { $addressNode->appendChild($xml->createElement('AddressLine', $this->address->getAddressLine3())); } if ($this->address->getStateProvinceCode()) { $addressNode->appendChild($xml->createElement('PoliticalDivision2', $this->address->getStateProvinceCode())); } if ($this->address->getCity()) { $addressNode->appendChild($xml->createElement('PoliticalDivision1', $this->address->getCity())); } if ($this->address->getCountryCode()) { $addressNode->appendChild($xml->createElement('CountryCode', $this->address->getCountryCode())); } if ($this->address->getPostalCode()) { $addressNode->appendChild($xml->createElement('PostcodePrimaryLow', $this->address->getPostalCode())); } } return $xml->saveXML(); }