SQLXML系列之一:SQLXML初体验——用XML代替SQL来操作数据库
2008-12-06 10:16:03 来源:WEB开发网Transform/Order.xsl & Transform.OrderDetail.xsl:由于SQLXML获取的数据实际上是一个纯XML,但是我们希望把数据在Web Page中显示出来。所以我们需要通过这两个XSLT把XML转化成相应的HTML。
Order.css:应用于Web Page的Css,使得页面看上去相对好看一点。
Order.aspx & OrderDetail.aspx:Web Page。
2. 创建Mapping Schema
<?xml version="1.0" encoding="utf-16"?>
Mapping Schema是一个XSD,他实现了如何把数据库中的对象(比如一个表,一个字段,甚至表与表之间的关联)Mapping到XML中的某一格Element或者Attribute中。所有Mapping相关的Tag定义在这样一个Namespace中——urn:schemas-microsoft-com:mapping-schema。通过relationship实现了T_ORDER和T_ORDER_DETAIL之间的关联。通过relation把两个表Mapping到一order和product XML Element上,通过field把数据库中相关的字段Mapping到对应的XML Attribute上。仔细分析,上面的XSD实际上是定义了下面一种结构。
<xs:schema xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<sql:relationship name="order_orderdetail" parent="T_ORDER" parent-key="ORDER_ID" child="T_ORDER_DETAIL" child-key="ORDER_ID" >
</sql:relationship>
</xs:appinfo>
</xs:annotation>
<xs:element sql:relation="T_ORDER" name="order" type="orderType" />
<xs:complexType name="orderType">
<xs:sequence>
<xs:element sql:relation="T_ORDER_DETAIL" sql:relationship="order_orderdetail" name="product" type="productType" />
</xs:sequence>
<xs:attribute sql:field="ORDER_ID" name="id" type="xs:int" />
<xs:attribute sql:field="ORDER_DATE" name="date" type="xs:dateTime" />
<xs:attribute sql:field="SUPPLIER" name="supplier" type="xs:string" />
</xs:complexType>
<xs:complexType name="productType">
<xs:attribute sql:field="PRODUCT_ID" name="id" type="xs:int" />
<xs:attribute sql:field="PRODUCT_NAME" name="name" type="xs:string" />
<xs:attribute sql:field="PRODUCT_NAME" name="price" type="xs:double" />
<xs:attribute sql:field="QUANTITY" name="quantity" type="xs:int" />
</xs:complexType>
</xs:schema>
更多精彩
赞助商链接