генерировать ключ формы из схемы XML - PullRequest
0 голосов
/ 29 июня 2010

Я хочу отправить сообщение, закодированное как application / x-www-form-urlencoded, и сообщение проверено XML-схемой, поэтому я нашел способ сгенерировать HTML-форму из XML-схемы с использованием XSLT.

xsd ниже:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m="http://dongfang-   china.com#" targetNamespace="http://dongfang-china.com#" elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xs:complexType name="SwitchingSchedule">       
    <xs:sequence>
        <xs:element name="endDateTime" type="xs:dateTime">

        </xs:element>
        <xs:element name="reason" type="xs:string"> 


        </xs:element>
        <xs:element name="startDateTime" type="xs:dateTime">                                                         

        </xs:element>
    </xs:sequence>
</xs:complexType>

и xslt ниже:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"          xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-  functions">
 <xsl:output method="html"/>
  <xsl:template match="xs:schema">
  <xsl:for-each select="xs:complexType/xs:sequence/xs:element">
    <br/>
   <label><xsl:value-of select="@name"/></label>
   <input type="text" name=""/> 

  </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

результат:

<br><label>endDateTime</label><input type="text"><br><label>reason</label><input type="text"><br><label>startDateTime</label><input type="text">

Но я не могунайти способ установить имя входа из XSD, или я должен использовать JavaScript?

Ответы [ 2 ]

1 голос
/ 29 июня 2010

У вас есть несколько вариантов:

Использовать xsl:attribute:

<input type="text">
  <xsl:attribute name="name">
    <xsl:value-of select="@name" />  
  </xsl:attribute>
</input>

Использовать ярлык (шаблон значения атрибута):

<input type="text" name="{@name}"/> 
1 голос
/ 29 июня 2010

Попробуйте:

<input type="text" name="{@name}"/> 

(см. характеристики W3C )

Кстати, вы можете использовать xs:annotation/xs:appInfo для добавления информации о более привлекательных ярлыках, контекстной справке и т. Д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...