我正在尝试在XSD中定义一个元素类型,我想要一个可选属性,如果存在,可以包含一个浮点数,或者为空(但仍然存在).
即:
<xs:element name="MyElement">
<xs:complexType>
<xs:attribute name="optionalFloatAttribute" type="xs:float" use="optional"/>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
需要"修复"以允许以下所有xml: -
<MyElement/>
or
<MyElement optionalFloatAttribute=""/>
or
<MyElement optionalFloatAttribute="3.14159"/>
Run Code Online (Sandbox Code Playgroud)
我能看到这样做的唯一方法是将类型更改为xs:string,并使用xs:restriction正则表达式.但这对我来说似乎并不理想.有没有更好的办法?
而且我必须能够支持xml的这些变体 - 程序和现有的xml是遗留的,我试图反向创建一个模式,以匹配我在我们必须视为有效的xml时看到的无数变体.
鉴于这种:
HTML
<button id="btn">Click me</button>
<br/>
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)
JS
$("#btn").on("click.mynamespace", function (e) {
$("#result").text("namespace: " + e.namespace);
});
Run Code Online (Sandbox Code Playgroud)
为什么名称空间总是未定义?
编辑:
我希望能够做的是将事件处理程序的多个实例连接到按钮的单击事件.然后,当单击该按钮时,依次调用每个实例.然后,事件处理程序的每个实例都需要断开连接,因此如果再次单击该按钮,则不会调用该处理程序实例.
我有一个返回FileResult(这是一个png图像)的动作.我非常希望浏览器缓存结果,因为对于给定的请求uri它不会改变.
我使用路由来使uri看起来像这样 -
http://localhost:6094/Map/Tiles/1.0.0/none/2/5/5.png
Run Code Online (Sandbox Code Playgroud)
在动作方法中,我打电话: -
Response.Cache.SetCacheability(HttpCacheability.Public);
Run Code Online (Sandbox Code Playgroud)
在Fiddler,我可以看到答案有: -
Cache-control: public
Run Code Online (Sandbox Code Playgroud)
头.然而,对相同地图图块的后续请求如下所示: -
GET http://localhost:6094/Map/Tiles/1.0.0/none/2/5/5.png HTTP/1.1
Host: localhost:6094
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.34 Safari/536.11
Accept: */*
Referer: http://localhost:6094/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Run Code Online (Sandbox Code Playgroud)
因此导致200响应和数据传输.
知道为什么Chrome不打算缓存我的数据吗?
谢谢
滑