Оригинал:

  • http://www.formsplayer.com/author/

    Создание форм в формате XForms для FormsPlayer beta

    Ниже приводится краткое введение в создание XForms-форм для FormsPlayer beta. Этот материал не будет расширяться, поскольку вскоре мы опубликуем полное руководство.

    XForms в XHTML

    XForms-формы создаются для встраивания в другие XML-документы. Обычно XForms-формы встраивают в XHTML-документы. На сегодняшний день броузеры не понимают XHTML должным образом. В частности, XHTML воспринимается лишь как XML-версия HTML (см. XHTML 1.0). Однако XHTML станоится все более модульным, и броузеры начинают иметь дело с элементами из других пространств имен, в в этом случае XForms станет стандартным формообразующим модулем для XHTML.

    Поэтому важно иметь это обстоятельство в виу при создании форм. Итак, мы начинаем свои документы с XML-декларации, и в ней декларируем пространства имен для XHTML и XForms:

    	<?xml version="1.0" encoding="iso-8859-1"?>
    	<html
    	 xmlns="http://www.w3.org/1999/xhtml"
    	 xmlns:xforms="http://www.w3.org/2002/xforms/cr"
    	>
    
    				

    XForms в IE6

    FormsPlayer beta работает в Microsoft Internet Explorer 6. Тэги XForms вставляются в обычный HTML-документ, но при помощи различных пространств имен мы можем указывать IE передавать контроль FormsPlayer'у на XForms-тегах:

    		<object id="FormsPlayer" classid="CLSID:4D0ABA11-C5F0-4478-991A-375C4B648F58" width="0" height="0">
    			<b>FormsPlayer has failed to load! Please check your installation.</b>
    			<br />
    			<br />
    		</object>
    		<?import namespace="xforms" implementation="#FormsPlayer"?>
    
    				

    Скоро мы выпустим код, избавляющий от необходимости этих деклараций, и это позолит вам использовать IE и FormsPlayer для просмотра любых XForms-форм в Интернете. Но сейчас эта декларация необходима во всех XForms-формах для того, чтобы использовать их в FormsPlayer beta.

    Заметим важность того, что префикс пространства имен декларируется в процессорной инструкции 'import', processing instruction matches that used when declaring the XForms namespace on the HTML element:

    	<html
    	 xmlns="http://www.w3.org/1999/xhtml"
    	 xmlns:xforms="http://www.w3.org/2002/xforms/cr"
    	>
    		...
    		<?import namespace="xforms" implementation="#FormsPlayer"?>
    
    				

    Также ID бинарного поведения (???) может быть каким угодно, но удостоверьтесь, что атрибут 'implementation' в 'import' PI ссылается на него корректно:

    		<object id="FormsPlayer" classid="CLSID:4D0ABA11-C5F0-4478-991A-375C4B648F58">
    			...
    		<?import namespace="xforms" implementation="#FormsPlayer"?>
    
    				

    XForms-данные

    Теперь, когда FormsPlayer beta включен в документ, можно использовать элементы XForms согласно спецификации. В продолжение нашего примера добавим модель, содержащую некоторые данные. Это обычно происходит в элементе 'head' XHTML-документа:

    		<head>
    			<title>My first form</title>
    			<xforms:model id="HelloWorld">
    				<xforms:instance>
    					<HelloWorld>
    						<greeting>Hello</greeting>
    						<who>World</who>
    					</HelloWorld>
    				</xforms:instance>
    			</xforms:model>
    		</head>
    
    				

    Заметим, что все элементы из набора XForms-тегов используют один и тот же префикс пространства имен - тот же, что использован в начале документа и в 'import' PI. Так мы сообщаем Internet Explorer'у о необходимости передачи контроля FormsPlayer beta при обнаружении XForms-тег.

    Пользовательский интерфейс XForms

    Теперь мы можем сделать данные редактируемыми, используя лишь пару простых полей редактирования. Для начала сделаем раскрывающийся список для выбора поздравления:

    		<body>
    			<xforms:select1 ref="greeting">
    				<xforms:label style="width:150px;">Change Greeting</xforms:label>
    				<xforms:hint>Choose the greeting that you would like to use</xforms:hint>
    				<xforms:item>
    					<xforms:label>Hello</xforms:label>
    					<xforms:value>Hello</xforms:value>
    				</xforms:item>
    				<xforms:item>
    					<xforms:label>Goodbye</xforms:label>
    					<xforms:value>Goodbye</xforms:value>
    				</xforms:item>
    			</xforms:select1>
    
    				

    Более подробную информацию об элементе select1 можно найти в спецификации XForms 1.0.

    Теперь добавить простое поле для редактирования, чтобы можно был ввести имя:

    			<xforms:input ref="who">
    				<xforms:label style="width:150px;">Greet Who?</xforms:label>
    				<xforms:hint>Please say who you would like to greet</xforms:hint>
    			</xforms:input>
    
    				

    Более подробную информацию об элементе input можно найти в спецификаии XForms 1.0.

    И наконец, добавим два элемента вывода, чтобы показать, как разные элементы управления можно включить в одни и те же данные:

    			Your greeting is: <b><xforms:output ref="greeting" />&nbsp;<xforms:output ref="who" />!</b>
    		</body>
    	</html>
    
    				

    Более подробная информация об элементе output - в спецификации XForms 1.0.

    См. результат. Для просмотра необходимо инсталлировать FormsPlayer.

  • Hosted by uCoz