使用包含属性</any>的<any>节点创建xsd模式

时间:2010-09-03 12:37:36

标签: 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架构,如下所示:

<Task>
   <randomField type="bla">test</randomField>
   <anotherField type="blabla">testing</anotherField>
   .....
</Task>

因此,您可以输入必须具有“type”属性的字段。

所有这一切的目的是在sharepoint中动态创建任务。所以你可以像这样输入一个xml:

<Task>
   <AssignedTo type="string">jsmith</AssignedTo>
   <Title type="string">Task1</Title>
</Task>

但是我希望xml是动态的,所以你可以输入更多的信息,比如duedate,priority ...而且属性的目的是决定数据类型是字符串,日期还是int,所以我可以正确地格式化所有内容...

事先提前

2 个答案:

答案 0 :(得分:1)

您可能需要查看XML schema tutorial

<xs:element name="Task">
   <xs:complexType>
      <xs:any minOccurs="0"/>            
    </xs:complexType>
</xs:element>

答案 1 :(得分:1)

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

<Task>
   <Attribute name="AssignedTo" type="string">jsmith</attribute>
   <Attribute name="Title" type="string">Task1</attribute>
</Task>

它会让你的生活更轻松。不仅要设计架构,还要在以后处理文件等。