Объясню ситуацию. Во первых, XML,HTML и все что с ними связано я практически не знаю (ну не довелось изучить, обычно пишу на С). Во вторых сама задача. Есть код проигрывания видео спомощью html:
<HTML>
<BODY>
<OBJECT ID="WMPlay" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
standby="Loading Microsoft Windows Media Player components..."
width="500" height="500">
<PARAM name="FileName" value="test.avi">
<PARAM name="autoplay" value="true">
<PARAM name="showcontrols" value="false">
<PARAM name="enabled" value="false">
</OBJECT>
</BODY>
</HTML>
Нужно создать такой XML файл, который делал бы то же самое. Немного покопав, нашел как в xml через html вставить image:
Здравствуйте, mihauzen, Вы писали:
M>Есть код проигрывания видео спомощью html...
M>Нужно создать такой XML файл, который делал бы то же самое.
Дело в том, что XML сам по себе таких средств не содержит. XML — просто язык записи каких-то данных. Здесь ниже ты используешь одно из приложений XML — XHTML. XHTML, попросту, тот же HTML, только записанный по строгим синтаксическим правилам XML (обязательное закрытие и правильная вложенность элементов, заключение значений атрибутов в кавычки и т. п.).
M>Немного покопав, нашел как в xml через html вставить image:
M>
Обрати внимание, тэг IMG закрыт по правилам XML: перед закрывающей скобкой > стоит слэш /, обозначая что элемент пустой. В HTML тэг IMG явным образом не закрывается. В XML оставление тэга незакрытым привело бы к синтаксической ошибке.
M>Кстати, зачем нужна эта строка:
xmlns:html='http://www.w3c.org/TR/REC-html40'
?
Это особого рода атрибут — объявление пространства имен. Здесь указывается пространство имен http://www.w3c.org/TR/REC-html40 и указывается, что ему сопоставляется префикс html.
Наверное, здесь есть ошибка. Тот URL, который приведен, является ссылкой на определение HTML, а не URI пространства имен. Правильным было бы указание URI пространства имен http://www.w3.org/1999/xhtml. В этом пространстве имен определен словарь элементов и атрибутов, имеющих отношение к XHTML. Эта связка "пространство имен — префикс" действительна в самом элементе, где объявлена (в данном случае IMG), в его атрибутах, во вложенных в него элементах и в их атрибутах.
Префикс используется в самом тэге элемента: html:IMG обозначает элемент IMG из пространства имен http://www.w3c.org/TR/REC-html40, в соответствии с привязкой префикса. То есть, если бы был указан правильный URI пространства имен, это бы значило, что имя IMG — из словаря XHTML, а не из какого-либо другого.
Кроме того, к XHTML ради совместимости с HTML-процессорами обычно предъявляется требование объявлять пространство имен как пространство имен по умолчанию: xmlns="http://www.w3.org/1999/xhtml". Тогда запись имен тэгов не сопровождается префиксом и становится очень похожа на запись в HTML.
Атрибуты, как правило, пространством имен не квалифицируются, т. к. их назначение обычно явно определяется элементом, к которому они отнесены.
M>Как сделать что-то схожее (а может иначе), только для проигрывания видео? M>XML файл подымается эксплорером.
Вероятно, нужно взять исходный HTML и привести его к синтаксису XML.
Кроме того, нужно вставить декларацию типа документа, а также привести все имена элементов к нижнему регистру, т. к. XML — язык, чувствительный к регистру:
<?xml version="1.0"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<object
id="WMPlay" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
standby="Loading Microsoft Windows Media Player components..."
width="500" height="500">
<param name="FileName" value="test.avi"/>
<param name="autoplay" value="true"/>
<param name="showcontrols" value="false"/>
<param name="enabled" value="false"/>
</object>
</body>
</html>
Как к этому относятся разные браузеры, я, к сожалению, точно сказать не могу. IE это съест, но, кажется, он интерпретирует это так же, как просто HTML.
Вообще-то новые IE умеют воспроизводить видео без всяких доп. плейеров через тег
<IMG DYNSRC="имя файла"/>
(сразу скажу, что если прога должна работать под Unix/Linux, то тут я не обладаю
достаточной инфой, есть ли в Мозиле такая же фишка.)
Итак, составляем xml-документ для хранения ссылки на видео (в принципе, нужно
только имя файла):
Вот в принципе и все.
Запускаем video.xml и видим авишку внутри веб-страницы.
Если стоит задача вывести этот контент в своей программе, т.е. создать UI на
основе эксплорера, то:
1. Создаем xml-документ и загружаем в него video.xml
2. Создаем xsl-трансформатор и загружаем в него video.xsl
3. Трансформируем с помощью него xml в html
4. Открываем html в своем webBrowser'е.
--
Lazarus
Re: Как с помощью XML, запускаемого из-под IE, проиграть вид
A><?xml version="1.0"?>
A><!DOCTYPE html
A> PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
A> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
A><html xmlns="http://www.w3.org/1999/xhtml">
<body>>
A> <object
A> id="WMPlay" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
A> standby="Loading Microsoft Windows Media Player components..."
A> width="500" height="500">
A> <param name="FileName" value="test.avi"/>
A> <param name="autoplay" value="true"/>
A> <param name="showcontrols" value="false"/>
A> <param name="enabled" value="false"/>
A> </object>
A> </body>
A></html>
A>
A>Как к этому относятся разные браузеры, я, к сожалению, точно сказать не могу. IE это съест, но, кажется, он интерпретирует это так же, как просто HTML.
IE это съел, но отобразил только дерево кода. Ниже (по теме), мне привели один рабочий пример, так что с отображением в какой-то мере разобрались. Но, попутно возник другой вопрос. Если мы указываем пространство имен <html xmlns="http://www.w3.org/1999/xhtml"> или задаем <stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> — это подразумевает, что машина, на которой выполняется данный код находится в on-line, подключена к инету? И тогда в режиме офф-лайн код работать не будет?
Здравствуйте, Lazarus, Вы писали:
......... L>Итак, составляем xml-документ для хранения ссылки на видео (в принципе, нужно L>только имя файла):
L>ФАЙЛ "video.xml":
L>
Здравствуйте, Drussgad, Вы писали:
D>Здравствуйте, mihauzen, Вы писали:
M>>Всем приветы!
M>>Объясню ситуацию... D>Можно так
D>test.xml: D><?xml version="1.0" encoding="utf-8" ?> D><?xml-stylesheet type="text/xsl" href="Test.xslt"?>
<test>> D></test>
D>test.xslt: D><?xml version="1.0" encoding="UTF-8" ?> D><stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> D><template match="/">
<HTML>>
<BODY>>
D><OBJECT ID="WMPlay" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" D>standby="Loading Microsoft Windows Media Player components..." D>width="500" height="500"> D><PARAM name="FileName" value="sl9.mpg"/> D><PARAM name="autoplay" value="true"/> D><PARAM name="showcontrols" value="false"/> D><PARAM name="enabled" value="false"/> D></OBJECT>
D></BODY> D></HTML> D></template> D></stylesheet> D>Сневаюсь , что одним XML можно обойтись...
Спасибо, это единственная рабочая версия решения из приведенных выше . Только возникает вопрос, раз уж это работает, то можно ли им управлять (play, pause, stop...), аналогично, через xml? Если нетрудно, то и примерчик
...все это временно... (с) Айэм
Re[3]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, mihauzen, Вы писали:
M>IE это съел, но отобразил только дерево кода.
Это если ты ему скармливаешь это именно как XML. Тогда он и не вникает, что здесь именно XHTML.
M>Если мы указываем пространство имен <html xmlns="http://www.w3.org/1999/xhtml"> или задаем <stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> — это подразумевает, что машина, на которой выполняется данный код находится в on-line, подключена к инету? И тогда в режиме офф-лайн код работать не будет?
Нет, не подразумевает. URI пространств имен не являются URL некоторых реально существующих ресурсов. Их назначение — просто уникакьным образом идентифицировать пространство имен, т. е. словарь элементов и атрибутов.
Да здравствует ИМХО!
Re[4]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, achp, Вы писали:
A>Здравствуйте, mihauzen, Вы писали:
M>>IE это съел, но отобразил только дерево кода.
A>Это если ты ему скармливаешь это именно как XML. Тогда он и не вникает, что здесь именно XHTML.
M>>Если мы указываем пространство имен <html xmlns="http://www.w3.org/1999/xhtml"> или задаем <stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> — это подразумевает, что машина, на которой выполняется данный код находится в on-line, подключена к инету? И тогда в режиме офф-лайн код работать не будет?
A>Нет, не подразумевает. URI пространств имен не являются URL некоторых реально существующих ресурсов. Их назначение — просто уникакьным образом идентифицировать пространство имен, т. е. словарь элементов и атрибутов.
Да, если сохранить файл, как *.html, то действительно- работает. Только тогда, в чем отличие этого файла от обычного html, и причем тут xml?
...все это временно... (с) Айэм
Re[3]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, mihauzen, Вы писали:
M>Здравствуйте, Drussgad, Вы писали:
M>Спасибо, это единственная рабочая версия решения из приведенных выше . Только возникает вопрос, раз уж это работает, то можно ли им управлять (play, pause, stop...), аналогично, через xml? Если нетрудно, то и примерчик
Сделай
<PARAM name="autoplay" value="false"/>
<PARAM name="showcontrols" value="false"/>
<PARAM name="enabled" value="true"/>
и управляй на здоровье
Это шутка — на самом деле , не пойму как ты хочешь управлять XML-ем : загрузил XML — кино идет , а потом загрузил новый , который нажал на паузу?
Re[3]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, mihauzen, Вы писали:
M>Да, если сохранить файл, как *.html, то действительно- работает. Только тогда, в чем отличие этого файла от обычного html, и причем тут xml?
В общем-то ни при чем .
Точнее, XHTML отличается от HTML большей формализованностью, так что с этим языком приложениям проще работать напрямую, чем с HTML. Вот для этого он и существует.
Собственно говоря, не ясно, что означает фраза "XML файл, который бы делал то же самое". Как видишь, XML файлы сами по себе ничего не делают...
Да здравствует ИМХО!
Re[4]: Как с помощью XML, запускаемого из-под IE, проиграть
Под управлением имелось ввиду — внутренее управление, т.е. на уровне скриптов, что-ли. Интерес предвтавляет то момент — будет ли работать скрипт описаный в xml аналогично проигрывателю и чего можно будет добиться. Управление проигрыванием видео всего лишь частный вариант, так как не разумно таким образом (через xml) только проигрывать.
Вообще, кроме видео еще должен отображаться текст и линки. Но это уже другая тема...
...все это временно... (с) Айэм
Re[6]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, achp, Вы писали:
A>Собственно говоря, не ясно, что означает фраза "XML файл, который бы делал то же самое". Как видишь, XML файлы сами по себе ничего не делают...
Имелось ввиду, что для проигрывания видео формируется один шаблонный файл (stylesheet) которому только подменяются имена файлов видео. Все данные берутся из базы, формеруется xml-файл и его xsl. Это все загружается в эксплореровский контейнер и отображается (разумеется, это все не только ради видео )
...все это временно... (с) Айэм
Re[7]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, mihauzen, Вы писали:
A>>Собственно говоря, не ясно, что означает фраза "XML файл, который бы делал то же самое". Как видишь, XML файлы сами по себе ничего не делают...
M>Имелось ввиду, что для проигрывания видео формируется один шаблонный файл (stylesheet) которому только подменяются имена файлов видео. Все данные берутся из базы, формеруется xml-файл и его xsl. Это все загружается в эксплореровский контейнер и отображается (разумеется, это все не только ради видео )
Аааа... Так надо было сразу написать, что к чему, а то ведь в исходном сообщении XSLT и не упоминался!
Да здравствует ИМХО!
Re[5]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, mihauzen, Вы писали:
M>Под управлением имелось ввиду — внутренее управление, т.е. на уровне скриптов, что-ли.Интерес предвтавляет то момент — будет ли работать скрипт описаный в xml аналогично проигрывателю и чего можно будет добиться.
Для того чтобы чегото добится — надо знать задачу. Поэтому ничего толкового по поводу скриптов сказать не могу.
М>Управление проигрыванием видео всего лишь частный вариант, так как не разумно таким образом (через xml) только проигрывать.
Насчет только проигрывания — это смотря какая задача стоит...
M>Вообще, кроме видео еще должен отображаться текст и линки. Но это уже другая тема...
А это без проблем — XSLT может обработать и отобразить все (и текст , и линки, и...)
Re[6]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, Drussgad, Вы писали:
D>Здравствуйте, mihauzen, Вы писали:
M>>Под управлением имелось ввиду — внутренее управление, т.е. на уровне скриптов, что-ли.Интерес предвтавляет то момент — будет ли работать скрипт описаный в xml аналогично проигрывателю и чего можно будет добиться.
D>Для того чтобы чегото добится — надо знать задачу. Поэтому ничего толкового по поводу скриптов сказать не могу.
М>>Управление проигрыванием видео всего лишь частный вариант, так как не разумно таким образом (через xml) только проигрывать.
D>Насчет только проигрывания — это смотря какая задача стоит...
M>>Вообще, кроме видео еще должен отображаться текст и линки. Но это уже другая тема...
D>А это без проблем — XSLT может обработать и отобразить все (и текст , и линки, и...)
Ок, буду формировать вопросы по мере приблежения к их реализации. А пока, спасибо за помошь
...все это временно... (с) Айэм
Re[8]: Как с помощью XML, запускаемого из-под IE, проиграть
Здравствуйте, achp, Вы писали:
A>Здравствуйте, mihauzen, Вы писали:
A>>>Собственно говоря, не ясно, что означает фраза "XML файл, который бы делал то же самое". Как видишь, XML файлы сами по себе ничего не делают...
M>>Имелось ввиду, что для проигрывания видео формируется один шаблонный файл (stylesheet) которому только подменяются имена файлов видео. Все данные берутся из базы, формеруется xml-файл и его xsl. Это все загружается в эксплореровский контейнер и отображается (разумеется, это все не только ради видео )
A>Аааа... Так надо было сразу написать, что к чему, а то ведь в исходном сообщении XSLT и не упоминался!
Я сразу и про XHTML не упоминал .
Все равно, спасибо за помощь. Задача частично решена. Скоро появятся новые сабжи.