WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » XForms-модель

XForms-модель


Дата публикации: 19-03-2008

Поскольку XForms-модель представляет содержание формы, она не изменяется от представления к представлению. Модель состоит из данных формы и логических компонентов. Данные формы находятся в пределах экземпляра [instance] (подробнее о нем ниже); он включает все поля формы, а также временное хранилище. Логические компоненты формы определяют ее поведение. Эти логические компоненты описываются обработчиками событий (event handlers), связыванием данных (data bindings) и информацией об инициализации (submission information) - обо всем этом речь пойдет в следующих разделах.

XForms предусматривают определение многочисленных моделей в пределах одной и той же формы. Это удобно, если вы хотите, чтобы одно приложение поддерживало множество функций. Например, личный портал может состоять из модели биржевого аппарата, модели календаря и так далее. Если вы описали множество моделей, можете воспользоваться атрибутом id, чтобы идентифицировать каждую из них. В Листинге 3 приведен скелет кода для формы заказа:


Листинг 3. Скелет кода для формы заказа

<HTML xmlns="http://www.w3.org/1999/xhtml"
  xmlns:xforms=http://www.w3.org/2002/01/xforms
  xmlns:ev="http://www.w3.org/2001/xml-events"
  xmlns:xlink="http://www.w3.org/1999/xlink">
   <head>
        <title>XForms: Order Form</title>
        <xforms:model>
            ... <!--Instance and Logical Components-->
        </xforms:model>
 </head>
<body>
    ... <!--User Interface goes here-->
</body>
</HTML>

Обратите внимание, что модель, как и говорилось выше, определена в пределах заголовка документа. Следующим шагом будет объявление данных экземпляра.

Более подробная информация о XForms-модели приведена в Спецификации.

Экземпляр

 

Данные экземпляра определяются в пределах модели. Они представляют все ту информацию, которая передается в обработчик, и любое временное хранилище, которое необходимо в пределах модели. Каждый экземпляр, однако, может содержать только одиночное дерево XML-данных - другими словами, может быть только один корневой узел.

Экземпляр определятся локально в пределах модели или указывает с помощью URI на существующие XML-данные, хранящиеся на удаленной машине. В Листинге 4 показан экземпляр, OrderInfo, определенный локально в форме заказа.


Листинг 4. Определение локального экземпляра

<xforms:model>
  <xforms:instance>
    <OrderInfo>
      <PersonalInfo>
        <Name>
          <First></First> <Middle></Middle> <Last></Last>
        </Name>
        <Address>
          <Street></Street> <City></City> <State></State>
          <Zip></Zip>
        </Address>
      </PersonalInfo>
      <PriceInfo>
        <SubTotal></SubTotal>
        <TaxTotal></TaxTotal>
        <TaxRate></TaxRate>
        <Total></Total>
      </PriceInfo>
      <TaxInfo>
        <CT>.060</CT>
        <NY>.085</NY>
        <NJ>.083</NJ>
      </TaxInfo>
      <ShoppingCart>
        <ProductInfo name="itm1">
            <Quantity>5</Quantity>
            <Description>Wht. Chocolate Bars</Description>
            <UnitPrice>1.45</UnitPrice>
            <ItemTotal></ItemTotal>
        </ProductInfo>
        <ProductInfo name="itm2">
            <Quantity>8</Quantity>
            <Description>Blk. Chocolate Bars</Description>
            <UnitPrice>1.45</UnitPrice>
            <ItemTotal></ItemTotal>
        </ProductInfo>
        <ProductInfo name="itm3">
            <Quantity>2</Quantity>
            <Description>Car. Filled Choc</Description>
            <UnitPrice>1.80</UnitPrice>
            <ItemTotal></ItemTotal>
        </ProductInfo>
      </ShoppingCart>
    </OrderInfo>
  </xforms:instance>
 ...
</xforms:model>

OrderInfo, приведенный в Листинге 4, состоит из четырех основных компонентов:

  • PersonalInfo содержит все информацию, которую вы хотите получить от пользователя;

  • PriceInfo включает сведения, необходимые для вычисления счета;

  • в TaxInfo содержится статическая информация о ставках налога в некоторых штатах (для простоты этот пример определяет налоговою ставку только для штатов Нью-Йорк, Коннектикут и Нью-Джерси);

  • ShoppingCart - это список товаров, которые пользователь собирается приобрести.

Как правило, под данными формы принято понимать информацию, которую пользователь вводит в форму. Тем не менее, разделы PriceInfo и TaxInfo демонстрируют, что данные экземпляра можно использовать и как временные переменные, и как постоянную информацию, соответственно.

В Листинге 5 показано, как можно реализовать экземпляр при обращении к удаленному XML-ресурсу.


Листинг 5. Обращение к удаленному XML-ресурсу

<xforms:model>
    <xforms:instance href="http://www.example.com/OrderFormData.xml"/>
    ...
</xforms:model>

Более подробная информация о данных экземпляра приведена в Спецификации.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

оберт Кийосаки:

"Если хочешь разбогатеть, ты должен научиться рисковать. Учись быть инвесторо."

Опрос

Как Вам новый дизайн сайта?

Отлично
Неплохо
Нормальный
Ужасно