Это XML-файл, который я генерироваться:Переименование по умолчанию XMLNS
<?xml version="1.0" encoding="utf-8"?>
<!--This document are generated by Apps. Please dont change any listed data here.-->
<q1:FilePenting xmlns:ksd="https://nerd.kekesed.id/xmlns/generic/v1" xmlns:q1="https://nerd.kekesed.id/xmlns/installer">
<q1:Perpustakaan>
<ksd:File PerluBanget="false">Ganteng</ksd:File>
<ksd:File PerluBanget="false">Ganteng2</ksd:File>
</q1:Perpustakaan>
</q1:FilePenting>
И я хочу, чтобы удалить q1
вещи, это действительно раздражает T^T
Вот мои классы:
<XmlRoot("FilePenting", Namespace:="https://nerd.kekesed.id/xmlns/installer")> _
Public Class RequiredFiles
<XmlArray("Perpustakaan"), _
XmlArrayItem("File", Namespace:="https://nerd.kekesed.id/xmlns/generic/v1")> _
Public Libs() As Berkas
<XmlNamespaceDeclarations()> _
Public xmlns As New XmlSerializerNamespaces
Sub New()
xmlns.Add("ksd", "https://nerd.kekesed.id/xmlns/generic/v1")
End Sub
End Class
Public Class Berkas
<XmlText()> _
Public NamaFile As String
<XmlAttribute("version", namespace:="https://nerd.kekesed.id/xmlns/generic/v1")> _
Public VersiFile As String
<XmlAttribute("PerluBanget")> _
Public PerluBanget As Boolean = False
Sub New()
End Sub
End Class
И вот код сериализации:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim FileBrow As New Microsoft.Win32.SaveFileDialog
With FileBrow
.Title = "Init XML Save File"
.Filter = "XML File (*.xml)|*.xml"
.ShowDialog()
If Not .FileName Is Nothing Then
'mulai bikin objek dan save dan lain lain lain lain
Dim x As New IsiSetup.RequiredFiles()
x.Libs = {New Berkas() With {.NamaFile = "Ganteng"}, New Berkas() With {.NamaFile = "Ganteng2"}}
Dim Aturannya As New XmlWriterSettings() With {.Indent = True, .IndentChars = " ", .NewLineChars = vbNewLine}
Dim penulis As New XmlSerializer(x.GetType)
Dim Xmlnya As XmlWriter = XmlWriter.Create(.FileName, Aturannya)
Xmlnya.WriteComment("This document are generated by Apps. Please dont change any listed data here.")
Dim Ns As New XmlSerializerNamespaces()
Ns.Add("", "")
penulis.Serialize(Xmlnya, x, Ns)
'done
Xmlnya.Close()
End If
End With
End Sub
Я хотел удалить xmlns по умолчанию, например w3c etc, и добавить xmlns по умолчанию в корневой каталог.
Как это сделать без выделения q1
с именем xmlns? Я имею в виду, я хочу, чтобы это было xmlns="https://nerd.kekesed.id/xmlns/installer"
.
Update
Я не хочу, чтобы это было объявлено снаружи класса. Поскольку я хочу объявить его во многих проектах, значит, объявление вне класса не является чистым решением.
Спасибо!
Попробуйте установить 'Ns.Add (" "," https://nerd.kekesed.id/xmlns/installer ")'. –
ahh я забыл упомянуть, что я не хочу, чтобы он был объявлен извне класса. Он не будет постоянным каждый раз, когда мне нужно объявить класс ._. – Kekesed
Почему вас беспокоит, какой префикс используется? Он не изменяет * информационный контент * файла один бит. –