Xml 如何制作不需要';当事情发生变化时,你不需要改变吗?

Xml 如何制作不需要';当事情发生变化时,你不需要改变吗?,xml,web-services,interface,wsdl,xsd,Xml,Web Services,Interface,Wsdl,Xsd,我正在制作一个CRUD Web服务,我有对象(在我的系统中也是数据库记录),比如说有几十个attibutes的客户。某些属性在这些年中可能会发生变化。在极少数情况下,它们可以重命名,我认为这不是问题,因为这是内部实现,接口中不需要attribte名称。但是会有新的属性,我不知道如何正确处理它们 我计划在schema中这样做: <xs:complexType name="tKeyValuePair"> <xs:sequence> <xs:element name

我正在制作一个CRUD Web服务,我有对象(在我的系统中也是数据库记录),比如说有几十个attibutes的客户。某些属性在这些年中可能会发生变化。在极少数情况下,它们可以重命名,我认为这不是问题,因为这是内部实现,接口中不需要attribte名称。但是会有新的属性,我不知道如何正确处理它们

我计划在schema中这样做:

<xs:complexType name="tKeyValuePair">
 <xs:sequence>
  <xs:element name="fieldname" type="xs:string" />
  <xs:element name="value" type="xs:string" />
 </xs:sequence>
</xs:complexType>

<xs:element name="keyvaluepair" type="tKeyValuePair"  />

<xs:complexType name="tKeyValuePairs">
 <xs:sequence>
   <xs:element ref="keyvaluepair" minOccurs="0" maxOccurs="unbounded" />
 </xs:sequence>
</xs:complexType>

<xs:element name="fieldvalues" type="tKeyValuePairs" /> 

<xs:complexType name="tCustomerBase">
 <xs:sequence>
   <xs:element name="customername" type="xs:string" />
   <!-- here are other fields that can't change but can be minOccurs="0"-->
  <xs:element ref="fieldvalues"  />
</xs:sequence>
不知怎的,为了其他的田地

那么使用

xsd:anyType
我可以用它代替字符串作为键值对的值的类型吗?我很感激你能帮助我如何真正做到这一点

除了我的问题,我很高兴听到任何关于这种模式设计的评论。所以请随意评论我在这里写的模型模式的部分


感谢和Best Reagards-Matti

实现您的操作,以接受简单的xml字符串参数作为唯一参数,然后您将使用
JAXB
在代码中将其转换为对象。这样,如果接口需求仅在参数方面发生变化,那么您所需要做的就是相应地通知您的web服务客户机。除非您正在添加/删除操作,否则wsdl不需要更改。谢谢您的回答!jaxb似乎相当于xsd.exe。我明白,如果它是简单的字符串,它就不需要更改。。。。但真的吗?该接口没有记录任何内容,因此有点违反了wsdl接口的思想。也许这对不断变化的界面有好处。但在这里,这似乎有点过分了。我可能错了。我也不知道如何将简单的字符串转换成对象。我想它会把它转换成java.lang.String,就这样。
xsd:anyType