Xml 将数组添加到XSD文件以将用户分配到权限规范

Xml 将数组添加到XSD文件以将用户分配到权限规范,xml,schema,xsd,Xml,Schema,Xsd,我不是程序员,所以这可能有意义,也可能没有意义,但我希望能够将外部数据文件链接到XSD文件,以指定用户是否属于某个组 如果没有链接,代码当前为: <xs:element name="user"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="user1"> <xs:enumeratio

我不是程序员,所以这可能有意义,也可能没有意义,但我希望能够将外部数据文件链接到XSD文件,以指定用户是否属于某个组

如果没有链接,代码当前为:

<xs:element name="user">
    <xs:simpleType>
      <xs:restriction base="xs:string">
          <xs:enumeration value="user1">
          <xs:enumeration value="user2">
          <xs:enumeration value="user3">
      </xs:restriction>
   </xs:simpleType>
</xs:element>

在此基础上创建XML文件时,用户必须来自列出的值之一


我不想在XSD文件中列出各种枚举值,而是想链接到一个可以轻松更新的外部文件,以便向XSD文件添加允许的用户。

这在XML模式中是不可能的。选择是在模式内部枚举(但随后很难添加值)还是编写额外的外部验证代码(但随后需要编写代码)。

您能解释一下模式是如何使用的吗?这可能有助于为您找到一个好的解决方案

但是xcut是对的,一般的答案是你所要求的不能实现。当然除了粘贴

 <xs:enumeration value="user4">


当你有了一个新用户,这其实很容易…

我并不反对写更多的代码,在某个时候我们会为这个项目找一个程序员。当你谈论外部验证时,你指的是什么类型的代码?你有一些选择。要么您使用Schematron之类的东西,要么您必须自己用Java编写(例如,通过使用JAXB加载XML文档)谢谢您的帮助,我将对此进行研究。我认为我想做的最好是使用某种类型的Java编程(很可能是xcut提到的JAXB)。显然,粘贴枚举值将添加新用户,但我希望设置一个值,该值将由具有可能用户列表的外部文件确定。从长远来看,希望尽可能保持XSD文件的静态,并且只更改外部文件以添加/删除不同权限级别的用户。管理员/客人/等等。这其实很容易做到。。。只需在单独的模式中将simpleType定义为它自己的命名类型(与上面的匿名类型相反)。此架构将是您的外部用户文件。然后在主模式中,导入user one并仅引用该simpleType。因此,将用户放在一个单独的文件中,只是语法将采用XSD格式,但这不应该太重要。