Re: Как с помощью XML, запускаемого из-под IE, проиграть вид
От: achp  
Дата: 11.12.03 18:21
Оценка:
Здравствуйте, mihauzen, Вы писали:

M>Есть код проигрывания видео спомощью html...


M>Нужно создать такой XML файл, который делал бы то же самое.


Дело в том, что XML сам по себе таких средств не содержит. XML — просто язык записи каких-то данных. Здесь ниже ты используешь одно из приложений XMLXHTML. XHTML, попросту, тот же HTML, только записанный по строгим синтаксическим правилам XML (обязательное закрытие и правильная вложенность элементов, заключение значений атрибутов в кавычки и т. п.).

M>Немного покопав, нашел как в xml через html вставить image:


M>
M><?xml version="1.0"?>
M>...........
M><html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40'
M>STYLE="CONTAINER:POSITIONED; POSITION:ABSOLUTE; TOP:100px; LEFT:100px; WIDTH:128px; HEIGHT:128px;" src="Gone_Fishing.gif"/>
M>...........
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.
Да здравствует ИМХО!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.