The StructInnerDescrip property is a true/false value that determines how XMP structures are produced. This VB.NET XMP example demonstrates:
Dim xmp As New Chilkat.Xmp()
xmp.UnlockComponent("anything")
Dim xml As Chilkat.Xml
xml = xmp.NewXmp()
' StructInnerDesc determines whether structures are stored with
' rdf:parseType="Resource",
' or within an "rdf:Description" sub-node.
' Use rdf:parseType="Resource
xmp.StructInnerDescrip = False
xmp.AddStructProp(xml, "Iptc4xmpCore:CreatorContactInfo", "Iptc4xmpCore:CiAdrExtadr", "123 Elm St.")
TextBox1.Text = xml.GetXml()
' This is the output:
'<?xml version="1.0" encoding="utf-8" ?>
'
'<x:xmpmeta xmlns:x="adobe:ns:meta/">
' <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
' <rdf:Description rdf:about="uuid:2371e093-7b49-45bd-aba0-63c2a6791b27" xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/">
' <Iptc4xmpCore:CreatorContactInfo <strong>rdf:parseType="Resource"</strong>>
‘ <Iptc4xmpCore:CiAdrExtadr>123 Elm St.</Iptc4xmpCore:CiAdrExtadr>
‘ </Iptc4xmpCore:CreatorContactInfo>
‘ </rdf:Description>
‘ </rdf:RDF>
‘</x:xmpmeta>
‘ Now use an inner rdf:Description sub-node:
xml = xmp.NewXmp()
xmp.StructInnerDescrip = True
xmp.AddStructProp(xml, "Iptc4xmpCore:CreatorContactInfo", "Iptc4xmpCore:CiAdrExtadr", "123 Elm St.")
TextBox1.Text = TextBox1.Text & vbCrLf & vbCrLf & xml.GetXml()
‘ This is the output:
‘<?xml version="1.0" encoding="utf-8" ?>
‘
‘<x:xmpmeta xmlns:x="adobe:ns:meta/">
‘ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
‘ <rdf:Description rdf:about="uuid:0b2ba084-0344-4c12-9c3d-0249262c2d17" xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/">
‘ <Iptc4xmpCore:CreatorContactInfo>
‘ <strong><rdf:Description></strong>
‘ <Iptc4xmpCore:CiAdrExtadr>123 Elm St.</Iptc4xmpCore:CiAdrExtadr>
‘ <strong></rdf:Description></strong>
‘ </Iptc4xmpCore:CreatorContactInfo>
‘ </rdf:Description>
‘ </rdf:RDF>
‘</x:xmpmeta>