介绍
在这篇文章中,我将讨论有关对定义的XSL验证XML。进入本文之前,它是强制性的,应该有什么是XML的放大器的基本知识;的XSL。
考虑下面的XML作为输入(UserCheck.xml)我们的应用程序:<?xml version="1.0" encoding="utf-16"?>
<root xmlns:func="urn:actl-xslt">
<User>
<UserName>suryaprakash</UserName>
<Password>password</Password>
</User>
</root>
这个例子说明以下的业务规则:如果用户名,密码的节点不存在,作为输出生成的XML错误。如果是空的用户名,密码节点,生成XML错误输出。检查用户名,密码,如果存在DB或不放大器;生成XML的成功或输出错误。
将输出如下:如果有任何错误,将被插入到XML文件(result.xml)。
每个错误标记将代表每个ERRORMSG放大器的错误;的errorCode。{C}
让我们进入以下步骤样本:第1步:定义XML第2步:定义为我们的业务上面定义的规则的XSL步骤3:定义功能将呼吁从XSL第4步:实施代码验证XML与XSL如下:从XSL将称为第1步:定义XML
考虑下面的XML作为输入到我们的例子:
第2步:定义为我们的业务上面定义的规则的XSL<?xml version="1.0" encoding="utf-16"?>
<root xmlns:func="urn:actl-xslt">
<User>
<UserName>suryaprakash</UserName>
<Password>password</Password>
</User>
</root>
上面的XSL,下面是代码中的注释:代码中的注释#1{的C4}
请注意,我这里添加属性 - XMLNS:FUNC = quot;瓮:ACTL xsltquot的;代码中的注释#2
前缀添加到我的外部方法功能:checkUserExist('用户名','密码')如下:{C5的}代码中的注释#3{5233}
这个标签是用来检查如果username节点的存在与否。代码中的注释#4{C7-}
这个标签是用来检查,如果用户名节点的内容为空或不。步骤3:定义功能将呼吁从XSL
该函数将被调用为它定义的XSL,XSL:价值选择"功能:checkUserExist('用户名','密码')"/ GT;
,而不是对数据库检查用户名,我们正在检查与静态值。如果用户名匹配,返回成功串其他它会返回ErrorStrings。{C8的}
第4步:实施代码验证XML与XSL如下:从XSL将称为
这下面的函数将被调用的主要方法,这个函数声明为XML输入,XSL输入放大器的主要变量,XML作为result.xml输出。public void CheckUserXslt()
{
string sourceDoc = @"D:\Surya Prakash\WorkAround\GopalSample\XML\CheckUser.XML";
string xsltDoc = @"D:\Surya Prakash\WorkAround\GopalSample\XML\CheckUser.xslt";
string resultDoc = @"D:\Surya Prakash\WorkAround\GopalSample\XML\result.xml";
XsltArgumentList xsltArguments = null;
XsltExtension xsltExtension = new XsltExtension();
xsltArguments = new XsltArgumentList();
xsltArguments.AddExtensionObject("urn:actl-xslt", xsltExtension);
XPathDocument myXPathDocument = new XPathDocument(sourceDoc);
XslTransform myXslTransform = new XslTransform();
XmlTextWriter writer = new XmlTextWriter(resultDoc, null);
myXslTransform.Load(xsltDoc);
myXslTransform.Transform(myXPathDocument, xsltArguments, writer);
writer.Close();
StreamReader stream = new StreamReader(resultDoc);
}
最后,通过修改XML输入放大器运行的应用程序;看到在result.xml输出。
快乐编码??希望这有助于!|孟加拉戈帕尔・苏里亚:Susanta578 | |类XsltExtension是不存在净2.0。你能告诉我如何得到这个类