小编Adi*_*ram的帖子

使用XSD 1.1的动态枚举限制

我正在尝试使用XSD 1.1创建一个模式定义,其中一个元素的结果依赖于其他元素.例如,我列出了每个国家/地区的国家/地区列表和州名列表.当一个人选择一个国家时,只能选择该国家的州.我想要达到的伪代码看起来像这样.

<xs:schema xmlns:ie="http://www.interviewexchange.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="country">       
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="USA" />
            <xs:enumeration value="UK" />
            <xs:enumeration value="India" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>
<xs:element name="state">       
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <assert test="if (country eq 'USA')">
            <xs:enumeration value="MA" />
            <xs:enumeration value="AR" />
            <xs:enumeration value="NY" />
            </assert">
            <assert test="if (country eq 'India')">
            <xs:enumeration value="AP" />
            <xs:enumeration value="TN" />
            <xs:enumeration value="MP" />
            </assert">
        </xs:restriction>
    </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

请建议我是否遵循正确的方法,如果我遵循正确的方法,任何人都可以给我一些如何获得这种限制的代码吗?提前致谢...

enums w3c xsd xsd-validation xsd-1.1

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

XSD验证中的SaxParseException不提供元素名称

我有一个xsd文件和一个xml文件,我正在使用以下代码对xsd文件验证xml文件

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(true);
        factory.setAttribute(
                "http://java.sun.com/xml/jaxp/properties/schemaLanguage",
                "http://www.w3.org/2001/XMLSchema");
        factory.setAttribute(
                "http://java.sun.com/xml/jaxp/properties/schemaSource",
                new InputSource(new StringReader(xsd)));
        Document doc = null;
        try {
            DocumentBuilder parser = factory.newDocumentBuilder();
            MyErrorHandler errorHandler = new MyErrorHandler();
            parser.setErrorHandler(errorHandler);
            doc = parser.parse(new InputSource(new StringReader(xml))); 
            return true;
        } catch (ParserConfigurationException e) {
            System.out.println("Parser not configured: " + e.getMessage());
        } catch (SAXException e) {
            System.out.print("Parsing XML failed due to a "
                    + e.getClass().getName() + ":");
            System.out.println(e.getMessage());
        } catch (IOException e) {
            System.out.println("IOException thrown");
            e.printStackTrace();
        }
        return false;
Run Code Online (Sandbox Code Playgroud)

MyErrorHanlder是

private static class …
Run Code Online (Sandbox Code Playgroud)

java xml xsd saxparseexception

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

使用 spring security 存储登录用户的其他详细信息

我正在寻找使用 Spring Security 在整个应用程序中存储和显示登录用户的其他详细信息的正确方法。

例如,我想在每一页的顶部显示Welcome:Mr.Smith(管理员,数学部)。为此,我想获取登录用户的前缀、姓氏、名称和部门。

我正在使用自定义UserDetails服务从数据库中获取用户。在浏览时,我发现AuthenticationhasgetDetails()可以存储与身份验证相关的其他详细信息,我可以使用该方法存储其他详细信息吗?

如果是,你能举一个简单的例子吗?我可以AuthenticationSuccessHanlder用来做这项工作,还是我以完全错误的方式看待问题?我不应该在 spring 安全层处理这个吗?我应该在哪里照顾它?

spring spring-mvc spring-security spring-webflow

2
推荐指数
1
解决办法
4151
查看次数