Создание XML с пространствами имен и схемами от XElement

Вы можете заключить обработчик в немедленно вызванное выражение функции и сохранить кэшированное обещание в закрытии:

const config = (() => {

  let cachedPromise;

  return () => {

    if (!cachedPromise) {
      cachedPromise = new Promise(resolve => {
        setTimeout(() => {
          resolve(5);
        }, 1000)
      });
    }

    cachedPromise.then((cache) => {
      console.log(`Cached value ${cache}`);
    })
  };

})();
12
задан SAL 2 December 2008 в 19:30
поделиться

2 ответа

От этой статьи это похоже на Вас новый больше чем один XNamespace, добавьте атрибут в корне и затем перейдите к городу с обоими XNamespaces.

// The http://www.adventure-works.com namespace is forced to be the default namespace.
XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XElement root = new XElement(aw + "Root",
    new XAttribute("xmlns", "http://www.adventure-works.com"),
///////////  I say, check out this line.
    new XAttribute(XNamespace.Xmlns + "fc", "www.fourthcoffee.com"),
///////////
    new XElement(fc + "Child",
        new XElement(aw + "DifferentChild", "other content")
    ),
    new XElement(aw + "Child2", "c2 content"),
    new XElement(fc + "Child3", "c3 content")
);
Console.WriteLine(root);

Вот сообщение форума, показывающее, как сделать schemalocation.

7
ответ дан 2 December 2019 в 21:04
поделиться

Благодаря David B - я не совсем уверен, что понимаю, что все это кроме этого кода получает меня, в чем я нуждаюсь...

  public XElement ToXElement()
  {
     const string ns = "http://www.someurl.com/ns/myroot";
     const string w3 = "http://wwww.w3.org/2001/XMLSchema-instance";
     const string schema_location = "http://www.someurl.com/ns/myroot http://www.someurl.com/xml/schemas/myschema.xsd";

     XNamespace xnsp = ns;
     XNamespace w3nsp = w3;

     XElement xe = new XElement(xnsp + "myroot",
           new XAttribute(XNamespace.Xmlns + "xsi", w3),
           new XAttribute(w3nsp + "schemaLocation", schema_location),
           new XElement(xnsp + "sometag", "somecontent")
        );

     return xe;
  }

Кажется что, связывая пространство имен плюс строка, например,

w3nsp + "schemaLocation"
дает названный атрибут
xsi:schemaLocation
в получающемся XML, который является тем, в чем я нуждаюсь.
7
ответ дан 2 December 2019 в 21:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: