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