こんにちは、
XML を記述するプロセスを短縮するためのアイデアを誰かが持っているかどうか疑問に思っていました。現時点では、私はこれでアルファ段階にあるので、実際にはモックアップです. しかし、私は道の 1/4 にすぎず、非常に多くのコード行があることに気付きました!
VS2012 で xsd ファイルを使用できるかどうか疑問に思っていましたが、少し混乱しています。さらに、後でリンクされるデータベースと通信する必要があり、必要に応じて繰り返すxmlフィールドも必要です。
もう1つ、誰もがほとんど述べるアイデアを得ました...
if Field is null then
not write xmlfield
そんな感じ!
事前に感謝します。提案は受け付けていますが、私のためにすべてをコーディングすることも期待していません。そのような大量のデータを書き込む簡単な方法があれば、穏やかに微調整してアドバイスしてください。
Sub XML()
Dim theDate As Date
theDate = Now.Date
Dim ymd As String = theDate.ToString("yyyyMMdd")
Dim enc As System.Text.Encoding
enc = System.Text.Encoding.GetEncoding("ISO-8859-1")
Dim settings As XmlWriterSettings = New XmlWriterSettings
settings.Indent = True
settings.Encoding = enc
Using writer As XmlWriter = XmlWriter.Create("C:\Test.xml", settings)
writer.WriteStartDocument()
writer.WriteDocType("ONIXMessage", Nothing, "http://www.editeur.org/onix/2.1/reference/onix-international.dtd", Nothing)
writer.WriteStartElement("ONIXMessage")
writer.WriteAttributeString("release", "2.1")
writer.WriteStartElement("Header")
' write next element
writer.WriteStartElement("FromCompany")
writer.WriteString(My.Settings.PublisherName)
writer.WriteEndElement()
'' write one more element
writer.WriteStartElement("FromPerson")
writer.WriteString(My.Settings.ContactName)
writer.WriteEndElement()
writer.WriteStartElement("FromEmail")
writer.WriteString(My.Settings.PublisherEmail)
writer.WriteEndElement()
writer.WriteStartElement("ToCompany")
writer.WriteString("sono")
writer.WriteEndElement()
writer.WriteStartElement("SendDate")
writer.WriteString(ymd)
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteStartElement("Product")
writer.WriteStartElement("RecordReference")
writer.WriteString(Form1.ebinfoISBN.Text & "_" & My.Settings.PublisherName)
writer.WriteEndElement()
writer.WriteStartElement("NotificationType")
writer.WriteString(Form1.ebinfoNotificationType.SelectedValue)
writer.WriteEndElement()
writer.WriteStartElement("ProductIdentifier")
writer.WriteStartElement("ProductIDType")
writer.WriteString("15")
writer.WriteEndElement()
writer.WriteStartElement("IDValue")
writer.WriteString(Form1.ebinfoISBN.Text)
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteStartElement("ProductForm")
writer.WriteString("DG")
writer.WriteEndElement()
writer.WriteStartElement("EpubType")
writer.WriteString(Form1.ebinfoEBFormat.SelectedValue)
writer.WriteEndElement()
writer.WriteStartElement("Title")
writer.WriteStartElement("TitleType")
writer.WriteString("01")
writer.WriteEndElement()
writer.WriteStartElement("TitleText")
writer.WriteString(Form1.ebinfoTitle.Text)
writer.WriteEndElement()
writer.WriteStartElement("TitlePrefix")
writer.WriteString(Form1.ebinfoTprefix.Text)
writer.WriteEndElement()
writer.WriteStartElement("Subtitle")
writer.WriteString(Form1.ebinfoSTitle.Text)
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
End Using
End Sub