Etiket: XSLT
Eylül 14th, 2009
Merhabalar,
Bir önceki makalemizde projemizin schemalarını oluşturmuştuk, Bu makelede ise bu schemaları kullanarak basit bir map yaratacağız. Bu map iki farklı şema arasında verilerin ne şekilde taşınacağını belirlememizi sağlar. Bu sayede normal kodlamada kullanılan XSLT ve XML gibi ciddi yoğun ve gereksiz işlerden, sürükle bırak yaparak kurtulmuş oluyoruz. Oluşturacağımız bu map dosyasını not defteriyle açarsanız neden bahsettiğimi daha iyi anlayabilirsiniz
- Sağ Click -> Add -> New Item yolunu izleyerek aşağıdaki gibi bir map oluşturuyoruz. Ben bu dosyanın ismine Transform_File2SQLRequest dedim. Dilerseniz değiştirebilirsiniz.

- Açılan btm dosyasında, Open Source Schema ya tıklayarak Schemas -> sqlbinding.data yı yani kaynak olan dosya şemamızı seçiyoruz.
- Open Destination Schema linkinden ise Schemas -> SQLBinding_InsertTableOperation_dbo_sqlbinding seçilir. Karşımıza bu işlemin türünü soran bir ekran gelecektir. Buradan biz sql e kayıt aktarımı yapacağımız için(gidiş yönlü bir transfer olucak) Insert işlemi seçilir.
- Şemalara belirlendikten sonra temel olarak sürükle bırak ile node ları birbirine bağlıyoruz. Bir tek ID bilgili otomatik üretileceği için boş bırakılacak. Mapin olması gereken son halini aşağıdaki resimden görebilirsiniz.

Bir sonraki makale; Orchestration
Tags: BizTalk, Biztalk 2009, Biztalk Map, Map, sqlbinding, Transform, xml, XSLT
Posted in BizTalk | No Comments »
Ağustos 14th, 2009
XSLT Choose Operation :
<xsl:variable name="value" select="//*[local-name()='NODE_NAME']" />
<xsl:choose>
<xsl:when test = "$value= 'abcxyz'" >
"//*[local-name()='NODE_NAME']" is equal to abcxyz
</xsl:when>
<xsl:otherwise>
Not Equal
</xsl:otherwise>
</xsl:choose>
Tags: xml, XSLT
Posted in Yazılım | 2 Comments »
Nisan 15th, 2009
evet mutlaka vardır bu konularla ilgilenen, hoş ben daha benden başkasını görüp duymadım ama neyse
Elinizde source olarak XML var, XSLT kullanarak bu dosyayı işlemek istiyorsunuz. Bazı yardımcı programlarla testlerini, çıktılarını, görünümü görüp hoşunuza gidiyor. Fakat internete koymak bunu biraz daha kastırıcı
Şöyleki aşağıdaki gibi bir default.aspx dosyanızın olması gerekli. Ne anlattığımı anlamayanlar, birer adet XML, XSLT ve ASPX dosyası ile db’ siz ek sayfasız muazzam portaller hazırlayabileceklerini düşünsünler. Şimdilik ilk aşama olarak ASPX dosyamızın kaynak kodlarını veriyorum. Fazla zor bir yapısı yok, o yüzden fazla açıklama gereği görmedim, isteyen olursa seve seve anlatabilirim.
Not düşeyim bir de : Buradaki XML ve XSLT dosyaları temel olarak Biztalk Server ın temelidir, yani microsoft bu teknolojiler üzerine BTS’ i geliştirmiştir.
Default.ASPX
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
using System.IO;
using System.Reflection;
using System.Collections;
using System.Text.RegularExpressions;
using System.Web;
using System.Text;
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DoPage();
}
protected void DoPage()
{
// XML Dokümanını yükle
XmlDocument defaultXml = new XmlDocument();
defaultXml.Load(HttpContext.Current.Server.MapPath("~/Data/Source.XML"));
XslCompiledTransform myXsl = new XslCompiledTransform(true);
XsltSettings xSet = new XsltSettings(true, true);
xSet = XsltSettings.TrustedXslt;
xSet.EnableDocumentFunction = true;
xSet.EnableScript = true;
XmlUrlResolver xr = new XmlUrlResolver();
System.Security.PermissionSet ps = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted);
XmlSecureResolver sr = new XmlSecureResolver(new XmlUrlResolver(), ps);
myXsl.Load(HttpContext.Current.Server.MapPath("~/Data/Proses.XSLT"), xSet, sr);
XsltArgumentList myXslArguments = new XsltArgumentList();
string n="";
for (int i = 0; Request.QueryString.Count < i-1; ++i)
{
n = Request.QueryString.Keys[i].ToString();
if (!(n.Equals("")))
myXslArguments.AddParam(n, "", Request.QueryString.GetValues(i).ToString());
n = "";
}
myXslArguments.AddParam("currentUser", "", User.Identity.Name);
myXslArguments.AddParam("Browser", "", Request.Browser.Browser);
System.IO.MemoryStream mIO = new MemoryStream();
byte[] result;
string myt;
mIO.SetLength(0);
myXsl.Transform(defaultXml, myXslArguments, mIO);
result = mIO.ToArray();
myt = Encoding.UTF8.GetString(result, 3, result.Length - 3);
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "text/html";
Context.Response.Write(myt);
mIO.Close();
Response.End();
}
}
Tags: ASPX, Default.aspx, HTML Çıktısı, xml, XML Processing, XSL, XSLT
Posted in Yazılım | No Comments »