/** * 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(); }