powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL + XML + XDR не работает
2 сообщений из 2, страница 1 из 1
XSL + XML + XDR не работает
    #34266558
Andrew T.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте! Хочу научиться но стандартный пример не работает
Файл 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>
...
Рейтинг: 0 / 0
XSL + XML + XDR не работает
    #34267232
dejavew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 ' />.

З.Ы. на живой базе я не проверял, но "по идее" - должно быть так...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL + XML + XDR не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]