XML-Grundgerüst DB für Adobe Illustrator

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Miri.

    XML-Grundgerüst DB für Adobe Illustrator

    Hallo liebes Forum,

    ich muss mich derzeit mit Adobe Illustrator beschäftigen und möchte hier ein wenig Abläufe automatisieren.

    Konkret möchte ich mit einem VB.net Programm eine XML Datei erzeugen und mit Inhalt füllen welche mit Adobe Illustrator kompatibel sein muss.

    Eine XML Datei erstellen und füllen war bislang nicht das Problem, jedoch handelte es sich meistens um eine einfache XML Struktur.

    Adobe benötigt eine XML mit folgendem Aufbau:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd" [
    3. <!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
    4. <!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
    5. <!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
    6. <!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
    7. <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
    8. <!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
    9. ]>
    10. <svg>
    11. <variableSets xmlns="&ns_vars;">
    12. <variableSet locked="none" varSetName="binding1">
    13. <variables>
    14. <variable category="&ns_flows;" trait="textcontent" varName="A1"></variable>
    15. <variable category="&ns_vars;" trait="fileref" varName="R1"></variable>
    16. </variables>
    17. <v:sampleDataSets xmlns="&ns_custom;" xmlns:v="&ns_vars;">
    18. <v:sampleDataSet dataSetName="Datensatz 1">
    19. <A1>
    20. <p>111</p>
    21. </A1>
    22. <R1>file:///C:/Users/xyz/file1.jpg</R1>
    23. </v:sampleDataSet>
    24. <v:sampleDataSet dataSetName="Datensatz 2">
    25. <A1>
    26. <p>222</p>
    27. </A1>
    28. <R1>file:///C:/Users/xyz/file2.jpg</R1>
    29. </v:sampleDataSet>
    30. <v:sampleDataSet dataSetName="Datensatz 3">
    31. <A1>
    32. <p>333</p>
    33. </A1>
    34. <R1>file:///C:/Users/xyz/file3.jpg</R1>
    35. </v:sampleDataSet>
    36. </v:sampleDataSets>
    37. </variableSet>
    38. </variableSets>
    39. </svg>


    Mein Problem ist wie ich die Attribute richtig in VB.net erstellen lassen kann.

    Die Felder A1 und R1 sind dann für mich kein Problem mehr aber mit Attributen habe ich bislang kein Erfolg gehabt.
    Also der Bereich ist für mich klar:

    XML-Quellcode

    1. <v:sampleDataSet dataSetName="Datensatz 3">
    2. <A1>
    3. <p>333</p>
    4. </A1>
    5. <R1>file:///C:/Users/xyz/file3.jpg</R1>
    6. </v:sampleDataSet>


    Für einen Schubs in die Richtige Richtung oder einem Beispiel wäre ich sehr dankbar.

    Vielen Dank!

    Liebe Grüße und schöne Weihnachten

    Miri

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Warum lässt du dir nicht anhand der XML von Visual Studio Klassen generieren, die du instantiieren und serialisieren kannst?
    - XML kopieren
    - Bearbeiten .. Inhalte einfügen .. XML als Klassen einfügen

    Da kommt dann so was dabei raus:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. ' HINWEIS: Für den generierten Code ist möglicherweise mindestens .NET Framework 4.5 oder .NET Core/Standard 2.0 erforderlich.
    2. '''<remarks/>
    3. <System.SerializableAttribute(),
    4. System.ComponentModel.DesignerCategoryAttribute("code"),
    5. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True),
    6. System.Xml.Serialization.XmlRootAttribute([Namespace]:="", IsNullable:=False)>
    7. Partial Public Class svg
    8. Private variableSetsField As variableSets
    9. '''<remarks/>
    10. <System.Xml.Serialization.XmlElementAttribute([Namespace]:="http://ns.adobe.com/Variables/1.0/")>
    11. Public Property variableSets() As variableSets
    12. Get
    13. Return Me.variableSetsField
    14. End Get
    15. Set
    16. Me.variableSetsField = Value
    17. End Set
    18. End Property
    19. End Class
    20. '''<remarks/>
    21. <System.SerializableAttribute(),
    22. System.ComponentModel.DesignerCategoryAttribute("code"),
    23. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://ns.adobe.com/Variables/1.0/"),
    24. System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://ns.adobe.com/Variables/1.0/", IsNullable:=False)>
    25. Partial Public Class variableSets
    26. Private variableSetField As variableSetsVariableSet
    27. '''<remarks/>
    28. Public Property variableSet() As variableSetsVariableSet
    29. Get
    30. Return Me.variableSetField
    31. End Get
    32. Set
    33. Me.variableSetField = Value
    34. End Set
    35. End Property
    36. End Class
    37. '''<remarks/>
    38. <System.SerializableAttribute(),
    39. System.ComponentModel.DesignerCategoryAttribute("code"),
    40. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://ns.adobe.com/Variables/1.0/")>
    41. Partial Public Class variableSetsVariableSet
    42. Private variablesField() As variableSetsVariableSetVariable
    43. Private sampleDataSetsField() As variableSetsVariableSetSampleDataSet
    44. Private lockedField As String
    45. Private varSetNameField As String
    46. '''<remarks/>
    47. <System.Xml.Serialization.XmlArrayItemAttribute("variable", IsNullable:=False)>
    48. Public Property variables() As variableSetsVariableSetVariable()
    49. Get
    50. Return Me.variablesField
    51. End Get
    52. Set
    53. Me.variablesField = Value
    54. End Set
    55. End Property
    56. '''<remarks/>
    57. <System.Xml.Serialization.XmlArrayItemAttribute("sampleDataSet", IsNullable:=False)>
    58. Public Property sampleDataSets() As variableSetsVariableSetSampleDataSet()
    59. Get
    60. Return Me.sampleDataSetsField
    61. End Get
    62. Set
    63. Me.sampleDataSetsField = Value
    64. End Set
    65. End Property
    66. '''<remarks/>
    67. <System.Xml.Serialization.XmlAttributeAttribute()>
    68. Public Property locked() As String
    69. Get
    70. Return Me.lockedField
    71. End Get
    72. Set
    73. Me.lockedField = Value
    74. End Set
    75. End Property
    76. '''<remarks/>
    77. <System.Xml.Serialization.XmlAttributeAttribute()>
    78. Public Property varSetName() As String
    79. Get
    80. Return Me.varSetNameField
    81. End Get
    82. Set
    83. Me.varSetNameField = Value
    84. End Set
    85. End Property
    86. End Class
    87. '''<remarks/>
    88. <System.SerializableAttribute(),
    89. System.ComponentModel.DesignerCategoryAttribute("code"),
    90. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://ns.adobe.com/Variables/1.0/")>
    91. Partial Public Class variableSetsVariableSetVariable
    92. Private categoryField As String
    93. Private traitField As String
    94. Private varNameField As String
    95. '''<remarks/>
    96. <System.Xml.Serialization.XmlAttributeAttribute()>
    97. Public Property category() As String
    98. Get
    99. Return Me.categoryField
    100. End Get
    101. Set
    102. Me.categoryField = Value
    103. End Set
    104. End Property
    105. '''<remarks/>
    106. <System.Xml.Serialization.XmlAttributeAttribute()>
    107. Public Property trait() As String
    108. Get
    109. Return Me.traitField
    110. End Get
    111. Set
    112. Me.traitField = Value
    113. End Set
    114. End Property
    115. '''<remarks/>
    116. <System.Xml.Serialization.XmlAttributeAttribute()>
    117. Public Property varName() As String
    118. Get
    119. Return Me.varNameField
    120. End Get
    121. Set
    122. Me.varNameField = Value
    123. End Set
    124. End Property
    125. End Class
    126. '''<remarks/>
    127. <System.SerializableAttribute(),
    128. System.ComponentModel.DesignerCategoryAttribute("code"),
    129. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://ns.adobe.com/Variables/1.0/")>
    130. Partial Public Class variableSetsVariableSetSampleDataSet
    131. Private a1Field As A1
    132. Private r1Field As String
    133. Private dataSetNameField As String
    134. '''<remarks/>
    135. <System.Xml.Serialization.XmlElementAttribute([Namespace]:="http://ns.adobe.com/GenericCustomNamespace/1.0/")>
    136. Public Property A1() As A1
    137. Get
    138. Return Me.a1Field
    139. End Get
    140. Set
    141. Me.a1Field = Value
    142. End Set
    143. End Property
    144. '''<remarks/>
    145. <System.Xml.Serialization.XmlElementAttribute([Namespace]:="http://ns.adobe.com/GenericCustomNamespace/1.0/")>
    146. Public Property R1() As String
    147. Get
    148. Return Me.r1Field
    149. End Get
    150. Set
    151. Me.r1Field = Value
    152. End Set
    153. End Property
    154. '''<remarks/>
    155. <System.Xml.Serialization.XmlAttributeAttribute()>
    156. Public Property dataSetName() As String
    157. Get
    158. Return Me.dataSetNameField
    159. End Get
    160. Set
    161. Me.dataSetNameField = Value
    162. End Set
    163. End Property
    164. End Class
    165. '''<remarks/>
    166. <System.SerializableAttribute(),
    167. System.ComponentModel.DesignerCategoryAttribute("code"),
    168. System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://ns.adobe.com/GenericCustomNamespace/1.0/"),
    169. System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://ns.adobe.com/GenericCustomNamespace/1.0/", IsNullable:=False)>
    170. Partial Public Class A1
    171. Private pField As UShort
    172. '''<remarks/>
    173. Public Property p() As UShort
    174. Get
    175. Return Me.pField
    176. End Get
    177. Set
    178. Me.pField = Value
    179. End Set
    180. End Property
    181. End Class

    Damit müsste sich doch arbeiten lassen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --