Silverlight/XAML – Learning by Coding
1: <?xml version="1.0" encoding="UTF-8"?>
2: <!-- coded by Thomas Meinike 04/08 -->
3: <Canvas xmlns="http://schemas.microsoft.com/client/2007"
4: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5: x:Name="daten" Loaded="LoadXML">
6:
7: <TextBlock Canvas.Left="20" Canvas.Top="15" Foreground="#999"
8: FontFamily="Lucida" FontSize="18" Text="Inhalte dynamisch aus einem XML-Dokument laden"/>
9:
10: <TextBlock Canvas.Left="20" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Jahr"/>
11: <TextBlock Canvas.Left="100" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Technologie"/>
12: <TextBlock Canvas.Left="600" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Herausgeber"/>
13:
14:
15: <!-- // zusätzlich verwendeter JavaScript-Code:
16:
17: function LoadXML(sender,eventArgs)
18: {
19: var sl_ctrl,daten_obj,textblock,dl;
20:
21: sl_ctrl=sender.getHost();
22: daten_obj=sender.findName("daten");
23: textblock='<TextBlock Canvas.Left="" Canvas.Top="" FontFamily="Arial" FontSize="16" Foreground="#00C" Text=""/>';
24:
25: dl=sl_ctrl.createObject("downloader");
26:
27: dl.addEventListener("DownloadFailed",function(sender,eventArgs)
28: {
29: var fehler=sl_ctrl.content.createFromXaml(textblock);
30: fehler.text="Fehler bei der Datenabfrage!";
31: fehler.foreground="#F00";
32: fehler["Canvas.Left"]="20";
33: fehler["Canvas.Top"]="80";
34: daten_obj.children.add(fehler);
35: });
36:
37: dl.addEventListener("Completed",function(sender,eventArgs)
38: {
39: if(sender.status==200)
40: {
41: var xml_obj=XMLDocument(sender.responseText);
42: var tech_items=xml_obj.getElementsByTagName("technologie");
43:
44: if(tech_items)
45: {
46: var anzahl=tech_items.length;
47:
48: for(var i=0;i<anzahl;i++)
49: {
50: var jahr=tech_items.item(i).getElementsByTagName("herausgeber").item(0).getAttribute("jahr");
51: var kurz=tech_items.item(i).getElementsByTagName("kurzbezeichnung").item(0).firstChild.nodeValue;
52: var tech=tech_items.item(i).getElementsByTagName("bezeichnung").item(0).firstChild.nodeValue;
53: var hrsg=tech_items.item(i).getElementsByTagName("herausgeber").item(0).firstChild.nodeValue;
54:
55: var jahr_obj=sl_ctrl.content.createFromXaml(textblock);
56: jahr_obj.text=jahr;
57: jahr_obj["Canvas.Left"]="20";
58: jahr_obj["Canvas.Top"]=80+20*i;
59:
60: var tech_obj=sl_ctrl.content.createFromXaml(textblock);
61: tech_obj.text=tech+" ("+kurz+")";
62: tech_obj["Canvas.Left"]="100";
63: tech_obj["Canvas.Top"]=80+20*i;
64:
65: var hrsg_obj=sl_ctrl.content.createFromXaml(textblock);
66: hrsg_obj.text=hrsg;
67: hrsg_obj["Canvas.Left"]="600";
68: hrsg_obj["Canvas.Top"]=80+20*i;
69:
70: daten_obj.children.add(jahr_obj);
71: daten_obj.children.add(tech_obj);
72: daten_obj.children.add(hrsg_obj);
73: }
74: }
75: }
76: else
77: {
78: var fehler=sl_ctrl.content.createFromXaml(textblock);
79: fehler.text="Fehler bei der Datenabfrage!";
80: fehler.foreground="#F00";
81: fehler["Canvas.Left"]="20";
82: fehler["Canvas.Top"]="80";
83: daten_obj.children.add(fehler);
84: }
85: });
86:
87: dl.open("GET","media/technologien.xml");
88: dl.send();
89: }
90:
91:
92: function XMLDocument(xmldata)
93: {
94: var xmldoc=null;
95:
96: if(window.ActiveXObject)
97: {
98: xmldoc=new ActiveXObject("Microsoft.XMLDOM");
99: xmldoc.async=false;
100: xmldoc.loadXML(xmldata);
101: }
102: else if(window.DOMParser)
103: {
104: xmldoc=(new DOMParser()).parseFromString(xmldata,"text/xml");
105: }
106:
107: return xmldoc;
108: }
109:
110: -->
111:
112:
113: <!-- // zusätzlich verwendeter XML-Code in technologien.xml:
114:
115: <?xml version="1.0" encoding="UTF-8"?>
116: <technologien>
117: <technologie>
118: <kurzbezeichnung>DocBook</kurzbezeichnung>
119: <bezeichnung>DocBook</bezeichnung>
120: <herausgeber jahr="1998">OASIS</herausgeber>
121: </technologie>
122: <technologie>
123: <kurzbezeichnung>RSS</kurzbezeichnung>
124: <bezeichnung>Really Simple Syndication</bezeichnung>
125: <herausgeber jahr="1999">UserLand Software</herausgeber>
126: </technologie>
127: <technologie>
128: <kurzbezeichnung>XSLT</kurzbezeichnung>
129: <bezeichnung>Extensible Stylesheet Language Transformations</bezeichnung>
130: <herausgeber jahr="1999">W3C</herausgeber>
131: </technologie>
132: <technologie>
133: <kurzbezeichnung>XHTML</kurzbezeichnung>
134: <bezeichnung>Extensible Hypertext Markup Language</bezeichnung>
135: <herausgeber jahr="2000">W3C</herausgeber>
136: </technologie>
137: <technologie>
138: <kurzbezeichnung>SVG</kurzbezeichnung>
139: <bezeichnung>Scalable Vector Graphics</bezeichnung>
140: <herausgeber jahr="2001">W3C</herausgeber>
141: </technologie>
142: <technologie>
143: <kurzbezeichnung>MathML</kurzbezeichnung>
144: <bezeichnung>Mathematical Markup Language</bezeichnung>
145: <herausgeber jahr="2001">W3C</herausgeber>
146: </technologie>
147: <technologie>
148: <kurzbezeichnung>X3D</kurzbezeichnung>
149: <bezeichnung>Extensible 3D</bezeichnung>
150: <herausgeber jahr="2004">ISO</herausgeber>
151: </technologie>
152: <technologie>
153: <kurzbezeichnung>OpenDocument</kurzbezeichnung>
154: <bezeichnung>Open Document Format for Office Applications</bezeichnung>
155: <herausgeber jahr="2005">ISO</herausgeber>
156: </technologie>
157: <technologie>
158: <kurzbezeichnung>DITA</kurzbezeichnung>
159: <bezeichnung>Darwin Information Typing Architecture</bezeichnung>
160: <herausgeber jahr="2005">OASIS</herausgeber>
161: </technologie>
162: <technologie>
163: <kurzbezeichnung>OOXML</kurzbezeichnung>
164: <bezeichnung>Office Open XML</bezeichnung>
165: <herausgeber jahr="2006">ECMA [ISO 2008]</herausgeber>
166: </technologie>
167: </technologien>
168:
169: -->
170:
171: </Canvas>
[zum Anfang]