/// <summary>
        /// <see cref="XdsDocumentBase"/>를 상속한 Class의 객체를 Xml Serialize를 수행하여 XDocument 객체로 변환한다.
        /// </summary>
        /// <param name="xds"></param>
        /// <param name="enc"></param>
        /// <returns></returns>
        public static XDocument ToXDocument(this XdsDocumentBase xds, Encoding enc)
        {
            XDocument xdoc;

            if (XmlTool.Serialize(xds, out xdoc))
            {
                return(xdoc);
            }

            return(new XDocument());
        }
        //private static readonly Type requestDocumentType = typeof(XdsRequestDocument);
        //private static readonly Type responseDocumentType = typeof(XdsResponseDocument);

        /// <summary>
        /// <see cref="XdsDocumentBase"/> 형식의 객체를 Xml Serializer를 수행한 후, byte array로 변환한다.
        /// </summary>
        /// <param name="xdsDocument"></param>
        /// <param name="enc"></param>
        /// <returns></returns>
        public static byte[] ConvertToBytes(this XdsDocumentBase xdsDocument, Encoding enc)
        {
            enc = enc ?? XmlTool.XmlEncoding;
            byte[] result;

            if (XmlTool.Serialize(xdsDocument, out result))
            {
                return(result);
            }

            throw new InvalidOperationException("XdsDocument를 serialize 하지 못했습니다.");
        }
 /// <summary>
 /// <see cref="XdsDocumentBase"/> 형식의 객체를 Xml Serializer를 수행한 후, byte array로 변환한다.
 /// </summary>
 /// <param name="xdsDocument"></param>
 /// <returns></returns>
 public static byte[] ConvertToBytes(this XdsDocumentBase xdsDocument)
 {
     return(ConvertToBytes(xdsDocument, XmlTool.XmlEncoding));
 }