不可更改的固定属性值和元素日期的格式

时间:2014-10-18 11:23:45

标签: html xml xslt web xsd

我不得不对我正在研究的互联网电视网站提出疑问。 第一个问题是订阅的主要元素有一个属性被称为(ServerIP)我希望服务器ip被修复,我想给它一个永远不会改变的值。我尝试了这段代码,但它没有工作,当我尝试打印时它没有打印,除非我用XML给它一个值

<xs:attribute name="serverIP" type="xs:string" fixed="10.144.50.55"/>

第二个问题是,如果我有一个名为date的元素,我想给它一个特定的模式yyyy-mm-dd。我知道我可以使用简单类型为属性做这件事。我试过这段代码,但它没有工作

 <xs:element name="dateOfBirth" type="xs:date">
                                    <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:restriction base="xs:date">
        <xs:pattern value="d{4}[-]d{2}[-]d{2}"/>
    </xs:restriction>
                                    </xs:complexType>
                                    </xs:simpleContent>
                                    </xs:element>

我怎么知道我的代码有效?因为当我在XML文件中以yyyymmdd格式给它一个值时,它会以与yyyy-mm-dd不同的格式打印出来

1 个答案:

答案 0 :(得分:0)

对于第一个问题 - 这取决于你在问题中应该提到的XSLT处理器。从

调整属性
<xs:attribute name="serverIP" type="xs:string" fixed="10.144.50.55"/>  

<xs:attribute name="serverIP" select="'10.144.50.55'"/>

保持值例如撒克逊人9.5.1.6 HE。 Demo

例如撒克逊人6.5。它会是

<server>
      <xsl:attribute name="serverIP">10.144.50.55</xsl:attribute>
</server>  

Demo

虽然我无法找到处理固定属性的在线XSLT处理器,但我猜它可能会将当前属性调整为

<xs:attribute name="serverIP" type="xs:string" fixed="'10.144.50.55'"/> 
注释的

更新:您还可以尝试在XSLT的开头声明一个静态参数:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="html" doctype-public="XSLT-compat" 
    omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:param name="staticServer" select="'10.144.50.55'"/>
<xsl:template match="/">
  <hmtl>
    <head>
      <server>
      <xsl:attribute name="serverIP" select="$staticServer"/></server>
    </head>
  </hmtl>
</xsl:template>  

但是,如果这种方法有效,它还取决于你未知的XSLT处理器。 Demo

注释的

更新:正如刚才提到的那样使用Notepad ++,问题是是否应用了任何XSLT来修改输出。如果没有,你可以检查,例如https://superuser.com/questions/148177/notepad-or-other-application-to-replace-string-with-numeric-function例如。