public function toXMLString()
 {
     $str = '';
     $str .= parent::toXMLString();
     if ($this->HostedButtonID != null) {
         $str .= '<urn:HostedButtonID>' . PPUtils::escapeInvalidXmlCharsRegex($this->HostedButtonID) . '</urn:HostedButtonID>';
     }
     if ($this->TrackInv != null) {
         $str .= '<urn:TrackInv>' . PPUtils::escapeInvalidXmlCharsRegex($this->TrackInv) . '</urn:TrackInv>';
     }
     if ($this->TrackPnl != null) {
         $str .= '<urn:TrackPnl>' . PPUtils::escapeInvalidXmlCharsRegex($this->TrackPnl) . '</urn:TrackPnl>';
     }
     if ($this->ItemTrackingDetails != null) {
         $str .= '<ebl:ItemTrackingDetails>';
         $str .= $this->ItemTrackingDetails->toXMLString();
         $str .= '</ebl:ItemTrackingDetails>';
     }
     if ($this->OptionIndex != null) {
         $str .= '<urn:OptionIndex>' . PPUtils::escapeInvalidXmlCharsRegex($this->OptionIndex) . '</urn:OptionIndex>';
     }
     if ($this->OptionTrackingDetails != null) {
         for ($i = 0; $i < count($this->OptionTrackingDetails); $i++) {
             $str .= '<ebl:OptionTrackingDetails>';
             $str .= $this->OptionTrackingDetails[$i]->toXMLString();
             $str .= '</ebl:OptionTrackingDetails>';
         }
     }
     if ($this->SoldoutURL != null) {
         $str .= '<urn:SoldoutURL>' . PPUtils::escapeInvalidXmlCharsRegex($this->SoldoutURL) . '</urn:SoldoutURL>';
     }
     if ($this->ReuseDigitalDownloadKeys != null) {
         $str .= '<urn:ReuseDigitalDownloadKeys>' . PPUtils::escapeInvalidXmlCharsRegex($this->ReuseDigitalDownloadKeys) . '</urn:ReuseDigitalDownloadKeys>';
     }
     if ($this->AppendDigitalDownloadKeys != null) {
         $str .= '<urn:AppendDigitalDownloadKeys>' . PPUtils::escapeInvalidXmlCharsRegex($this->AppendDigitalDownloadKeys) . '</urn:AppendDigitalDownloadKeys>';
     }
     if ($this->DigitalDownloadKeys != null) {
         for ($i = 0; $i < count($this->DigitalDownloadKeys); $i++) {
             $str .= '<urn:DigitalDownloadKeys>' . PPUtils::escapeInvalidXmlCharsRegex($this->DigitalDownloadKeys[$i]) . '</urn:DigitalDownloadKeys>';
         }
     }
     return $str;
 }
 public function toXMLString()
 {
     $str = '';
     $str .= parent::toXMLString();
     if ($this->HostedButtonID != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:HostedButtonID>' . $this->HostedButtonID . '</urn:HostedButtonID>';
     }
     if ($this->TrackInv != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:TrackInv>' . $this->TrackInv . '</urn:TrackInv>';
     }
     if ($this->TrackPnl != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:TrackPnl>' . $this->TrackPnl . '</urn:TrackPnl>';
     }
     if ($this->ItemTrackingDetails != null) {
         //prop is not a collection
         //prop is complex
         //prop is not enum
         //does not contain attribute or is attribute
         $str .= '<ebl:ItemTrackingDetails>';
         $str .= $this->ItemTrackingDetails->toXMLString();
         $str .= '</ebl:ItemTrackingDetails>';
     }
     if ($this->OptionIndex != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:OptionIndex>' . $this->OptionIndex . '</urn:OptionIndex>';
     }
     if ($this->OptionTrackingDetails != null) {
         for ($i = 0; $i < count($this->OptionTrackingDetails); $i++) {
             //property is collection
             //prop.complex
             //does not contain attribute or is attribute
             $str .= '<ebl:OptionTrackingDetails>';
             $str .= $this->OptionTrackingDetails[$i]->toXMLString();
             $str .= '</ebl:OptionTrackingDetails>';
         }
     }
     if ($this->SoldoutURL != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:SoldoutURL>' . $this->SoldoutURL . '</urn:SoldoutURL>';
     }
     if ($this->ReuseDigitalDownloadKeys != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:ReuseDigitalDownloadKeys>' . $this->ReuseDigitalDownloadKeys . '</urn:ReuseDigitalDownloadKeys>';
     }
     if ($this->AppendDigitalDownloadKeys != null) {
         //prop is not a collection
         //prop not complex
         //prop is not value
         $str .= '<urn:AppendDigitalDownloadKeys>' . $this->AppendDigitalDownloadKeys . '</urn:AppendDigitalDownloadKeys>';
     }
     if ($this->DigitalDownloadKeys != null) {
         for ($i = 0; $i < count($this->DigitalDownloadKeys); $i++) {
             //property is collection
             //not a complex member
             //prop is not a value
             $str .= '<urn:DigitalDownloadKeys>' . $this->DigitalDownloadKeys[$i] . '</urn:DigitalDownloadKeys>';
         }
     }
     return $str;
 }