Xml 使用<;创建xsd架构;任何>;包含属性的节点

Xml 使用<;创建xsd架构;任何>;包含属性的节点,xml,xsd,Xml,Xsd,我想用包含属性的xs:any元素创建一个xsd模式 像这样的 <xs:element name="Task"> <xs:element name="any" type="xs:anyType"> <xs:attribute name="type" type="xs:string" /> </xs:element> </xs:element> 但显然这不是一个有效的模式 我想要完成的是一个xml模式,如下所示

我想用包含属性的xs:any元素创建一个xsd模式

像这样的

<xs:element name="Task">
   <xs:element name="any" type="xs:anyType">
      <xs:attribute name="type" type="xs:string" />
   </xs:element>
</xs:element>

但显然这不是一个有效的模式

我想要完成的是一个xml模式,如下所示:

<Task>
   <randomField type="bla">test</randomField>
   <anotherField type="blabla">testing</anotherField>
   .....
</Task>
<Task>
   <AssignedTo type="string">jsmith</AssignedTo>
   <Title type="string">Task1</Title>
</Task>

测试
测试
.....
因此,您可以输入一个必须具有“type”属性的字段

所有这些都是为了在sharepoint中动态创建任务。因此,您可以像这样输入xml:

<Task>
   <randomField type="bla">test</randomField>
   <anotherField type="blabla">testing</anotherField>
   .....
</Task>
<Task>
   <AssignedTo type="string">jsmith</AssignedTo>
   <Title type="string">Task1</Title>
</Task>

名缩写和姓
任务1
但是我希望xml是动态的,这样您就可以输入更多的信息,比如duedate、priority。。。该属性的目的是确定数据类型是string还是date或int,这样我就可以正确地格式化所有内容


thx提前

您可能需要查看


尽管这可能很无聊,但我建议您采用不同的方法:

<Task> <Attribute name="AssignedTo" type="string">jsmith</attribute> <Attribute name="Title" type="string">Task1</attribute> </Task> 名缩写和姓 任务1
这会让你的生活轻松很多。不仅是设计模式,而且在以后处理文件等时也是如此。

如果XML可以有任意元素,那么拥有模式有什么意义呢?好的,我忘了在这里键入xs:complextype,但这并不能解决问题,我不能为xs:any元素输入属性。。谢谢您的快速回复如果我理解正确,您正在尝试向未定义的元素添加属性??您是否已经知道哪些特定元素可以(但不能)出现在XML中?因为如果您这样做,您可以在模式中定义它们,就像在任何其他复杂元素中一样,然后将它们放在。。。。这样,它们就可以被忽略或包括在内。但是,如果您希望随意添加任意标记,则需要将标记保留为空。在这种情况下,不能指定属性。我建议您定义元素(如果您知道的话)。是的,但是当您稍后分配另一个属性时,例如@Rise\u-country:No,我相信@Stijn意味着您将始终拥有属性
名称
。因此,
duedate
分配给
标题
等将是该属性的值。xml将保持有效,因为您不必在模式中定义属性值。