Документация описывает, как получить URL-адрес для загрузки файла в облачном хранилище.
Если у вас уже есть инфраструктура загрузки, основанная на URL-адресах, или вы просто хотите поделиться URL-адресом, вы можете получить URL-адрес загрузки для файла, вызвав метод getDownloadUrl () для ссылки на хранилище.
blockquote>storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener
() { @Override public void onSuccess(Uri uri) { // Got the download URL for 'users/me/profile.png' } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Handle any errors } });
"Более корректный путь" был бы:
XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"),
new XElement(ns + "urlset",
new XElement(ns + "url",
new XElement(ns + "loc", "http://www.example.com/page"),
new XElement(ns + "lastmod", "2008-09-14"))));
То же как Ваш код, но с "не уточнено +" перед каждым именем элемента, которое должно быть в пространстве имен карты сайта. Достаточно умно не поместить любые ненужные объявления пространства имен в получающийся XML, таким образом, результат:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/page</loc>
<lastmod>2008-09-14</lastmod>
</url>
</urlset>
, который является, если я не ошибаюсь, что Вы хотите.
Я наткнулся на этот пост, имея дело с аналогичной проблемой в VB.NET. Я использовал литералы XML, и мне потребовались некоторые поиски, чтобы выяснить, как заставить это решение работать с конструкцией литерала XML, а не только с функциональной конструкцией.
Решение состоит в том, чтобы импортировать пространство имен XML вверху файла.
Imports <xmlns:ns="x-schema:tsSchema.xml">
И затем префикс всех моих литералов XML в выражении запроса с импортированным пространством имен. Это удаляет пустое пространство имен, которое появлялось на элементах, когда я сохранял свой вывод.
Dim output As XDocument = <?xml version="1.0" encoding="utf-8"?>
<XML ID="Microsoft Search Thesaurus">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<%= From tg In termGroups _
Select <ns:expansion>
<%= From t In tg _
Select <ns:sub><%= t %></ns:sub> %>
</ns:expansion> %>
</thesaurus>
</XML>
output.Save("C:\thesaurus.xml")
Надеюсь, это кому-нибудь поможет. Несмотря на такие неровности на дороге, API XLinq чертовски крут.
Если один элемент использует пространство имен, они все должны использовать тот. В случае, если Вы не определяете тот самостоятельно, платформа добавит пустое пространство имен, как Вы заметили. И, к сожалению, нет никакого переключателя или чего-то подобного для подавления этой "функции".
Так, кажется, нет никакого лучшего метода для разделения его. Использование Замена (" xmlns = \"\"", "") могло быть немного быстрее, чем выполнение RegEx.