Good Afternoon,
I was wondering if anyone had any ideas to shorten my process for writing a XML. At the moment I'm at a Alpha stage with this so its really a mock up. But I've realised i'm only 1/4 of the way though and there's so many lines of code!
I've wondered could i use the xsd file in VS2012 - but I get a tad confused. Plus I would need it to talk to a database which it will be linked to later on, and also have xml fields that repeat if necessary.
Another thing, anyone got an idea to state almost ...
if Field is null then
not write xmlfield
Something like that!
Many thanks in advance, i'm open to suggestions - but I also don't expect you to code it all for me - just a gentle nudge and advise if there's a easier way of writing such a large amount of data.
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