[英]XML Validation against Schema and Database
我有一个这样的XML示例:
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer # Sci-Fi</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy # Teen</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
目的是对XML结构和数据完整性进行验证。
范例:
1)。 一本“书”必须包含<author>
, <title>
, <genre>
, <price>
等。 还必须检查其数据类型。
2)。 必须针对数据库中的表验证元素<genre>
值,并确定它们是否存在(有效)。 在有效的情况下,我们将从该表中提供一个替代(通用)值,以便我们可以选择保留旧值还是建议值。
问题:
1)。 我应该使用哪个DTD标记来标识必须针对数据库验证某个元素?
2)。 哪种模式验证更适合这种情况(DTD-XSD-XDR)?
3)。 关于在<genre>
元素的情况下如何形象化建议值和现有值的任何建议?
任何提示或代码段均表示赞赏。
这是一些示例XML模式(XSD)。 您基本上可以只将shiporder
元素替换为book元素,它甚至涉及如何验证数据类型并提供正则表达式。
我不确定validated again a table in database
是什么意思。 实际值是否必须在数据库中才能有效? 对于generalized
类型的建议是将#
上的类型拆分并使用第一个标记? 然后可以将其建议为一种体裁。
var dom = new XmlDocument();
dom.Load("catalog.xml");
var res = dom.SelectNodes("//book/genre", mgr);
foreach(XmlNode node in res){
string s = node.InnerText();
string[] tokens= s.Split('#');
CheckAgainstDatabase(tokens[0]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.