Embedd XML within XML - Possible ??

  • Thread starter Thread starter sippyuconn
  • Start date Start date
S

sippyuconn

Hi

I need to store some configuration settings in a db
using an 2 fileds

ID Field and String Field

The ID Field is a unique key and the string holds a xml string that store my
settings
Now I need to modify my configuration xml to store another parameter which
is a xml document itself. I could probably store a key in the xml to point
to the 2nd XML document but I was wondering is there a way to embed an
xml string within another xml string as an attribute within an element???

Thanks
 
Hi sippyuconn,

From your description, I understand that you want to store some XML format
data via the AppSettings <item> in .net application's configuration file,
correct?

Based on my experience, it is not quite recommended that we store such
complex format text in the appsettings. this is because AppSettings <item>
use attribute to hold item value, which is designed to store some simple
text values.

If you do want to store complex XML data into the attribute field. I think
you can consider the following means:

1. First, your xml data have to be encoded into a safe format(which won't
violate the container xml document). One simple means is using HtmlEncode
to encode the embeded xml(which is to put into appsetting item).

2. When you read the item out, you need to HtmlDecode it.

Here are two simple functions demonstrate this:

=============================
static void StoreXML()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<root><items>
<item id ='1'></item><item id='2'></item>
</items>
</root>
");

Configuration config
=ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None);

doc.PreserveWhitespace = false;
StringWriter sw = new StringWriter();
doc.Save(sw);

config.AppSettings.Settings["doc1"].Value = null;
config.AppSettings.Settings["doc1"].Value =
HttpUtility.HtmlEncode(sw.ToString());

config.Save();

}

static void ReadXML()
{
string rawdoc = ConfigurationManager.AppSettings["doc1"];

XmlDocument doc = new XmlDocument();

string xml = HttpUtility.HtmlDecode(rawdoc);



doc.LoadXml(xml);

Console.WriteLine(doc.OuterXml);

}
=========================

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://support.microsoft.com/select/default.aspx?target=assistance&ln=en-us.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
If you're doing this so you can store "complex" information in your
app.config or web.config, this is a hack.

...

A better solution would be to author your own configuration section
"Handler" (and "Settings") class.



I have a working example here:
http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!138.entry

Ignore the SMTP stuff, just focus on the
EmailSmtpSettingsHandler : IConfigurationSectionHandler
class...and how I parse the xml to create a strong object.


Or go here:
http://msdn.microsoft.com/en-us/library/2tw134k3.aspx
or here
http://support.microsoft.com/default.aspx?scid=kb;en-us;309045


But "xml inside an xml" doesn't have a good feel to it, IMHO.
 
Hi Sippy,

Have you got any progress on this issue or does the suggestion in my last
reply help you some? If there is anything else we can help, please feel
free to post here.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

--------------------
 
Back
Top