[英]xsd Elements: how to place single simple values with complex type (sequence)
我需要創建一個像這樣的xml文件:
<AGENDA>
<COVER COLOR>BLACK</COVER COLOR>
<PRICE>24.99</PRICE>
<ENTRIES>
<NAMESURNAME>AAABBB</NAMESURNAME>
<PHONENUMBER>3434534543</PHONENUMBER>
<NAMESURNAME>EEEAAA</NAMESURNAME>
<PHONENUMBER>2342342</PHONENUMBER>
</ENTRIES>
</AGENDA>
即,一個或多個選項和一個復雜的類型依次出現。 每個xml文件僅需要一組選項,而一個或多個條目則需要。 我使用VS2010中嵌入的xsd文本編輯器,但是我不知道如何正確放置options元素。 如果我鍵入(在<xsd:schema....>
標記之后):
<xsd:element name="OPTION1" type="xsd:string"/>
<xsd:element name="RawPolling">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="RawPollingEntry">
<xsd:complexType>
<xsd:sequence maxOccurs="1" minOccurs="0">
<xsd:element name="Nome" type="xsd:string" />
.....
....
我在xsd上沒有收到任何錯誤,但是當我寫xml時,我得到“ XML文檔不能包含多個根級元素”,我試圖將OPTION1移入RawPolling內(但不在RawPollingEntry內,OPTION1不屬於復雜/序列類型,每個xml文件只需要一個OPTION1)並獲得其他錯誤(“元素...具有無效的子元素...)
我怎么能做到這一點?
首先,您的XML無效-名稱中不能包含帶空格的標記,因此:
<COVER COLOR> ..... </COVER COLOR>
首先是無效的。
xsd.exe
帶有一個名為xsd.exe
的強大工具。 在這種情況下,我使您的XML有效(將標簽更改為<COVERCOLOR>
),然后在其上運行xsd.exe-這將基於XML文件的內容生成一個XML模式文件。
結果是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="newschema" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AGENDA">
<xs:complexType>
<xs:sequence>
<xs:element name="COVERCOLOR" type="xs:string" minOccurs="0" />
<xs:element name="PRICE" type="xs:string" minOccurs="0" />
<xs:element name="ENTRIES" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="NAMESURNAME" nillable="true" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent msdata:ColumnName="NAMESURNAME_Text" msdata:Ordinal="0">
<xs:extension base="xs:string">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PHONENUMBER" nillable="true" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent msdata:ColumnName="PHONENUMBER_Text" msdata:Ordinal="0">
<xs:extension base="xs:string">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
您應該在類似於以下路徑的路徑中找到xsd.exe:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bin\
這是在64位Windows 7計算機上-在32位計算機上,它將是c:\\program files\\...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.