我有一个xml shema来编组和解组xml。
现在我的问题:
我获得了具有以下结构的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<request id="2">
<body>
<adress type="pfad">
exsample/Barcode02
</adress>
<adress type="name">
Barcode02
</adress>
<adress type="nummer">
105
</adress>
</body>
</request>
有多个地址属性,每种属性都有所不同。
我如何设置我的shema,所以它会接受像这样的xml文件。 目前它看起来如下:
<xs:complexType name="eventType">
<xs:complexContent>
<xs:extension base="bt:bodyType">
<xs:sequence>
<xs:element ref="pdt:adress" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
提前致谢
低糜
答案 0 :(得分:1)
有许多方法可以编写用于建模XML文件的模式。
所以给定的架构只是一个例子
它定义并引用了几个名为complexType
的s,
从而避免过深的嵌套结构
需要maxOccurs="unbounded"
才能这样做
<body>
可以包含多个<adress>
元素。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request" type="request" />
<xs:complexType name="request">
<xs:sequence>
<xs:element name="body" type="body" />
</xs:sequence>
<xs:attribute name="id" type="xs:int"/>
</xs:complexType>
<xs:complexType name="body">
<xs:sequence>
<xs:element name="adress" type="adress" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="adress">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>