Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: XML Namespace Добавлено: 30.10.07 21:46  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
у мелкомягких в xml (когда xls сохраняешь в xml) выходит такая штука:
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">


т.е. у них ns по умолчанию указан, а потом ему ещё и псевдоним назначается.
пытаюсь повторить - не получается.

пишу вот такой код:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace proExcelXML {
  public class clsTest {

    [XmlRoot(Namespace=someclass.cnst_myns_fullname)]
    public class someclass {
      public const string cnst_myns_fullname = "some full name of ns";
      public string var1 = "1";
      public string var2 = "2";
      public string var3 = "3";
      public string var4 = "4";
    }
    public static void SaveBook() {
      someclass test = new someclass();
      XmlSerializer xml = new XmlSerializer(typeof(someclass),someclass.cnst_myns_fullname);
      using (System.IO.FileStream strm = new System.IO.FileStream(@"c:\test.xml", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) {
        string real_ns = someclass.cnst_myns_fullname;
        real_ns += "1"; // to comment
        XmlSerializerNamespaces nscoll = new XmlSerializerNamespaces();
        nscoll.Add("myns", real_ns);
        xml.Serialize(strm, test, nscoll);
      }
    }
  }
}


когда в таком виде прогоняю, получаю:
<?xml version="1.0"?>
<someclass xmlns:myns="some full name of ns1" xmlns="some full name of ns">
  <var1>1</var1>
  <var2>2</var2>
  <var3>3</var3>
  <var4>4</var4>
</someclass>


а когда комментирую строку с to comment, то получаю:
<?xml version="1.0"?>
<myns:someclass xmlns:myns="some full name of ns">
  <myns:var1>1</myns:var1>
  <myns:var2>2</myns:var2>
  <myns:var3>3</myns:var3>
  <myns:var4>4</myns:var4>
</myns:someclass>


как мне добиться того, чтобы одно и то же namespace было объявлено как по умолчанию и при этом имело бы псевдоним myns?

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам