|
|
|
XSL + XML + XDR не работает
|
|||
|---|---|---|---|
|
#18+
Здраствуйте! Хочу научиться но стандартный пример не работает Файл XDR <?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <ElementType name="Employee" sql:relation="Employees" > <AttributeType name="EmpID" /> <AttributeType name="FName" /> <AttributeType name="LName" /> <attribute type="EmpID" sql:field="EmployeeID" /> <attribute type="FName" sql:field="FirstName" /> <attribute type="LName" sql:field="LastName" /> </ElementType> </Schema> Файл XML <Northwind xmlns:sql="urn:schemas-microsoft-com:xml-sql" sql:xsl='list3.xsl' > <sql:header> <sql:param name='FName'>Nancy</sql:param> </sql:header> <sql:xpath-query mapping-schema='list3.xdr'> /Employee[@FName=$FName] </sql:xpath-query> </Northwind> Файл XSL <?xml version='1.0' encoding='UTF-8'?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/TR/WD-xsl' version='1.0'> <xsl:template match='*'> <xsl:apply-templates /> </xsl:template> <xsl:template match='Employees'> <TR> <TD><xsl:value-of select='@FirstName' /></TD> <TD><xsl:value-of select='@LastName' /></TD> <TD><xsl:value-of select='@Title' /></TD> <TD><xsl:value-of select='@Notes' /></TD> </TR> </xsl:template> <xsl:template match='/'> <HTML> <BODY> <TABLE BORDER='1'> <TR> <TH COLSPAN='4'>Employees</TH> </TR> <xsl:apply-templates select='ROOT' /> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> В результате не работает xsl преобразование, выводит - <HTML> - <BODY> - <TABLE BORDER="1"> - <TR> <TH COLSPAN="4">Employees</TH> </TR> </TABLE> </BODY> </HTML> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2007, 22:08 |
|
||
|
XSL + XML + XDR не работает
|
|||
|---|---|---|---|
|
#18+
Andrew T.... В результате не работает xsl преобразование... У тебя согласно схеме XDR строки таблицы БД Employees отображаются по XPath-шаблону на элементы результирующего XML - Employee (в единственном числе). Далее - xslt-шаблон для каждой строки (<xsl:template match='Employee s '> ... </xsl:template>) ссылается на несуществующие в итоговом документе элементы Employee s . Плюс к этому - xslt-шаблон для всего документа (<xsl:template match='/'> ... </xsl:template>) содержит указание обработки несуществующего элемента ROOT (... <xsl: apply-templates select=' ROOT ' /> ...). Судя по всему (как составлен sqlxml-xpath-шаблон), имя корневого элемента в выходном документе XML должно быть Northwind, т.е. в шаблоне <xsl:template match='/'> ... </xsl:template> надо применять <xsl:apply-templates select=' Northwind ' />. З.Ы. на живой базе я не проверял, но "по идее" - должно быть так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2007, 10:37 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34267232&tid=1334515]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 333ms |

| 0 / 0 |
