我正在尝试使用xs:key和xs:keyref定义在XML模式上定义一些外键约束.我希望文档的结构按以下方式分层:
<?xml version="1.0" encoding="UTF-8"?>
<tns:root xmlns:tns="http://www.example.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/ SampleSchema.xsd ">
<parent parentKey="parent1">
<child childKey="child1"/>
<child childKey="child2"/>
</parent>
<parent parentKey="parent2">
<child childKey="child1"/>
<child childKey="child2"/>
</parent>
<referrer parentRef="parent1" childRef="child2"/>
</tns:root>
Run Code Online (Sandbox Code Playgroud)
每个父节点都有一个(全局)唯一键,由parentKey定义.每个子项都有由childKey定义的键,但是childKey仅在其包含父项的范围内是唯一的.
然后是一个引用者列表,其中包含对特定父和子的外键引用.
我可以根据需要定义键,只需将它们放在正确的元素上:根元素上的parentKey约束和父元素上的childKey约束.我也可以毫无困难地将keyref定义为parentKey.
尝试为childKey定义keyref时出现问题.我尝试在root元素上定义一个简单的keyref到childKey,但是这不起作用,因为我看不到只选择正确父子树下的子元素.(Eclipse验证器,至少,总是简单地验证文档中最后一个父子树的内容......).
然后我尝试定义一个复合键(在root上),用:
如果父项下定义了多个子项,则会失败.这是基于XSD 1.1规范 3.11.4节第3项的正确行为,该规则指出密钥必须与每个字段定义最多匹配一个节点.
重申一下:如果我强迫childKeys全球独一无二,这很容易实现; 困难在于引用本地唯一的childKeys.
任何XSD大师都有想法吗?
作为参考,这是一个示例XSD,注释掉了一个失败的childKey keyref:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/" xmlns:tns="http://www.example.org/" elementFormDefault="unqualified">
<element name="root">
<complexType>
<sequence>
<element name="parent" maxOccurs="unbounded" minOccurs="1">
<complexType>
<sequence>
<element name="child" maxOccurs="unbounded" minOccurs="1"> …Run Code Online (Sandbox Code Playgroud) 我有一个配置为在JBoss下使用范围类加载器的WAR.这一切都很好,花花公子.jboss-web.xml中的配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
<class-loading>
<loader-repository>
com.mycompany:loader='com.mycompany.repository'
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
Run Code Online (Sandbox Code Playgroud)
现在,客户端希望在同一JBoss实例下部署两个WAR文件副本.它们被配置为使用相同的类加载器存储库,这会导致问题.
如果我手动更改WAR文件的一个副本中的jboss-web.xml以指定不同的存储库,例如通过将相关行更改为:
com.mycompany:loader='com.mycompany.repository2'
Run Code Online (Sandbox Code Playgroud)
...... WAR的两个副本都可以毫无问题地部署.
但是,攻击WAR文件的内部对于客户来说并不是一个很棒的解决方案.
如果我可以将上下文根合并到存储库的名称中(或者两个部署之间保证不同的其他属性),这可以自动完成.
是否可以在jboss-web.xml中使用属性?让我这样做:
com.mycompany:loader='com.mycompany.repository-${jboss.context-root}'
Run Code Online (Sandbox Code Playgroud)
(注意:我编写了该属性名称.)
退后一步,是否有更好的方法来完成我想要完成的任务?
我正在开发一个遗留的Web应用程序,需要使用Internet Explorer的"IE5 Quirks Mode"(使用设置X-UA-Compatible: IE=5).
应用程序中的许多文本字段都有(应用程序生成的)"x"按钮来清除内容.在IE10中,IE还会生成一个"x"按钮来清除该字段,因此用户可以看到其中的两个.
如本问题所述,您可以使用::-ms-clearCSS伪元素删除IE生成的"x" .不幸的是,这似乎不适用于IE5 Quirks模式:::-ms-clear伪元素的样式显示在开发人员工具中:unknown,并且IE生成的'x'继续出现.
除了重写应用程序以使用现代浏览器模式,有没有办法摆脱IE生成的'x'?
以下是在IE10下运行时在IE5 Quirks模式下重现问题的测试页:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=5">
<style type="text/css">
::-ms-clear { width: 0; height: 0; }
</style>
</head>
<body>Enter some text:<input></body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在Flex 3中构建我的第一个Flex自定义组件.它是一个基于'Grid'容器类的数据表,每个单元格中都有一个简单的文本标签.(DataGrid和AdvancedDataGrid并不适合我的需求.)该组件使用较小的表可以很好地工作,但我尝试使用更大的表对其进行压力测试,并对结果感到失望.
组件创建过程有一些慢点,但这些是我的优化能力,并不是我主要关心的问题.让我更担心的是Flex框架本身的限制.
这个"大"样本表中有超过7000个单元格.这比较大,但仍比我需要容纳的最大量级低1-2个数量级.在标准网格结构中,组件的主要部分包含一个网格,每个网格包含400个GridRows,每个网格项目包含16个GridItem,以及一些其他较小的辅助网格.
表格呈现后,我发现以下内容:
感觉就像Flex无法扩展以支持这么大的组件树.我不禁想象它会如何表现100,000细胞.也许我正在推动网格超出其预期用途,但是每个表格单元格中的对象看起来并不是一个不合理的模型,树中的~14,000个对象(GridItem和每个单元格的标签)似乎相当适中.
我还没有从FlexBuilder探查器中获取有用的数据; 我在做这个工作.目前,我最大的问题是:
我在WinXP上的Firefox下在Flash Player 9上运行它.
apache-flex ×1
css ×1
flash ×1
flex3 ×1
java ×1
jboss ×1
quirks-mode ×1
schema ×1
xml ×1
xsd ×1