小编Aro*_*ron的帖子

XSD key/keyref:分层键结构

我正在尝试使用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上),用:

  • selector = parent
  • field = @parentKey
  • field = child/@ childKey

如果父项下定义了多个子项,则会失败.这是基于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)

xml schema xsd

14
推荐指数
1
解决办法
7890
查看次数

在jboss-web.xml中使用属性/变量

我有一个配置为在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)

(注意:我编写了该属性名称.)

退后一步,是否有更好的方法来完成我想要完成的任务?

java jboss

7
推荐指数
1
解决办法
4790
查看次数

IE 10的-ms-clear伪元素和IE5怪癖模式

我正在开发一个遗留的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)

css quirks-mode internet-explorer-10

6
推荐指数
1
解决办法
1万
查看次数

具有大量UI对象的Flex应用程序==慢?

我正在Flex 3中构建我的第一个Flex自定义组件.它是一个基于'Grid'容器类的数据表,每个单元格中都有一个简单的文本标签.(DataGrid和AdvancedDataGrid并不适合我的需求.)该组件使用较小的表可以很好地工作,但我尝试使用更大的表对其进行压力测试,并对结果感到失望.

组件创建过程有一些慢点,但这些是我的优化能力,并不是我主要关心的问题.让我更担心的是Flex框架本身的限制.

这个"大"样本表中有超过7000个单元格.这比较大,但仍比我需要容纳的最大量级低1-2个数量级.在标准网格结构中,组件的主要部分包含一个网格,每个网格包含400个GridRows,每个网格项目包含16个GridItem,以及一些其他较小的辅助网格.

表格呈现后,我发现以下内容:

  • 与鼠标相关的事件很难发生.具体来说,我在每个表格单元格上注册了rollOver/rollOut事件处理程序,让我突出显示指针下的单元格.在一张小桌子上,我可以非常快速地将鼠标移到桌子上,并且突出显示将实时跟随指针.使用较大的桌子,突出显示非常不稳定,每秒只改变大约两次,跳过许多细胞.
  • 如果我将鼠标光标放在组件上并将其留在那里,我的CPU就会挂起(无论如何都是一个处理器核心),并且一直保持这种状态,直到我离开组件,当它掉到空闲状态时.我的组件此时根本没有做任何事情.

感觉就像Flex无法扩展以支持这么大的组件树.我不禁想象它会如何表现100,000细胞.也许我正在推动网格超出其预期用途,但是每个表格单元格中的对象看起来并不是一个不合理的模型,树中的~14,000个对象(GridItem和每个单元格的标签)似乎相当适中.

我还没有从FlexBuilder探查器中获取有用的数据; 我在做这个工作.目前,我最大的问题是:

  • 我是否真的通过这种适度的测试来推动Flex的极限?
  • 我对这个组件的处理是完全偏离基础的吗?

我在WinXP上的Firefox下在Flash Player 9上运行它.

apache-flex flash flex3 actionscript-3

3
推荐指数
2
解决办法
5884
查看次数