2009-06-04 8 views
1

Voici mon scénario. XML est stocké dans SQL DB. Je dois permettre à l'utilisateur d'éditer différentes parties de ce XML (pas d'insertion, juste des mises à jour), être notifié si quelque chose a changé (pour sauvegarder le dernier fichier date ou le noeud a été édité) et sauvegarder le XML mis à jour.Modifier (par liaison de données) XML dans le formulaire ASP.NET

Quelle est la meilleure approche & dans ce scénario? J'espérais utiliser l'expression de liaison de données avec XmlDataSource. MAIS, il ne supporte que la lecture en lecture seule (il semble).

Existe-t-il d'autres solutions intégrées à ASP.NET que je pourrais utiliser pour permettre la liaison de données (en spécifiant xpath pour chaque contrôle)? ou dois-je déployer ma propre solution?

Si je déploie ma propre solution, quelle est la meilleure façon de le faire?

Répondre

1

Vous n'avez pas à rouler votre propre solution car vous pourriez facilement laisser le framework .Net vous soulever la lourde charge. Si la liaison de données est ce que vous recherchez, vous pouvez utiliser l'outil XSD pour générer une classe CLR à partir de votre schéma XML (s'il existe).

Génération de la classe ressemblerait à quelque chose comme ceci:

xsd/c/langue: CS XSDSchemaFile.xsd

Une fois que vous avez cet objet, comme d'habitude faire la liaison sur l'interface utilisateur que objet. Une fois que vous êtes prêt à propager ces modifications dans la base de données, vous pouvez sérialiser XML l'objet et repasser les résultats dans la base de données.

var serializer = new XmlSerializer(typeof (MyCustomType)); 

var stream = new MemoryStream(); 
var xw = new XmlTextWriter(stream, encoding); 

serializer.Serialize(xw, instanceOfCustomType); 

String xml = encoding.GetString(stream.ToArray()); 
Questions connexes