Xsd Don';我不理解这段XML

Xsd Don';我不理解这段XML,xsd,Xsd,我正在尝试创建一个XML模式,但没有取得太多成功。有一个结构我不明白。。。以下是我到目前为止对模式的了解,后面是我试图创建它的XML文件。。有什么建议吗 <?xml version="1.0" encoding="utf-16"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name=&quo

我正在尝试创建一个XML模式,但没有取得太多成功。有一个结构我不明白。。。以下是我到目前为止对模式的了解,后面是我试图创建它的XML文件。。有什么建议吗

<?xml version="1.0" encoding="utf-16"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">



     <xsd:element name="CorbelFile">
     <xsd:complexType>
          <xsd:sequence>     
               <xsd:group ref="Project" minOccurs="0" maxOccurs="unbounded"/>   
          </xsd:sequence>
     </xsd:complexType>
     </xsd:element>
     
     <xsd:group name="Project">
          <xsd:sequence>          
                    <xsd:element name="ADProductID"
                                type="xsd:string" />
                    <xsd:element name="ADProductID"
                                type="xsd:string" />
                    <xsd:element name="ADProductName"
                                type="xsd:string" />
                    <xsd:element name="ADProductVersion"
                                type="xsd:string" />
                    <xsd:element name="ADProjectId"
                                type="xsd:string" />
                    <xsd:element name="ADProjectName"
                                type="xsd:string" />
                    <xsd:element name="ADFileLoc"
                                type="xsd:string" />
                    <xsd:group ref="Answers"
                              minOccurs="0"
                              maxOccurs="unbounded"/>
          </xsd:sequence>
     </xsd:group>

     <xsd:group name="Answers">
          <xsd:sequence>
               <xsd:element name="var"/>
           </xsd:sequence>
     </xsd:group>
     

</xsd:schema>


XML

28359
IDP403(b)
7
00010001
独立牙科中心
C:\Program Files\Relius\Docs\dp\u data\1\0\00010001.ck2
独立性
密苏里州
东23街11500号
64052
(816) 254-7200
43-1118440
001
利润分享计划与信托
独立牙科中心公司。
独立牙科中心公司。
利润分享计划与信托
九月三十日
十月一日
九月三十日
十月一日
1963年12月12日
布拉德·巴布科克
劳伦·卡尔
约翰·史密斯
59 1/2
第六十
83
IDP资金购买/目标
2
00010002
独立牙科中心议员
C:\Program Files\Relius\Docs\dp\u data\2\0\0001002.ck2
24581
IDP修订版SA
10
000102C9
2010年-汉诺威-受托人
C:\Program Files\Relius\Docs\dp\U data\9\C\000102C9.ck2
美国信托公司
汉诺威产科医院;妇科公司。
韦伯斯特街135号
汉诺威
马萨诸塞州
02339
(781) 878-7020
04-2477545
001
汉诺威产科医院;妇科公司。
401(k)利润分享计划
2010年8月1日
阿尔伯特·马库斯医学博士。
2010年8月1日

在Visual Studio中打开xml文件,进入“xml”菜单,选择“创建架构”。

不要使用组,而是将“Var”定义为具有“Ld”属性的元素:

<complexType name="Var">
    <annotation>
        <documentation>
            Description of what a Var is
        </documentation>
    </annotation>
    <attribute name="Ld" type="string">
        <annotation>
            <documentation>
                Description of what this attribute means
            </documentation>
        </annotation>
    </attribute>
</complexType>
为您的模式创建一个目标名称空间也是一个好主意,这样您的元素就有了一个关联的名称空间:

targetNamespace="http://my.example.com/schema"
xmlns:mec="http://my.example.com/schema"
这意味着您的元素将被称为type=“mec:Project”,而不仅仅是“Project”,因此,当将此模式与另一个模式结合使用时,可以防止将来出现任何问题。

如何定义一个元素,使其既包含文本,又包含属性 通常,只有文本内容的元素类型必须是
xs:simpleType
。在这种情况下,这会导致问题,因为可以包含属性(或其他元素)的元素的类型定义必须是
xs:complexType
。解决方案是使用
xs:simpleContent
仅允许文本,并使用
xs:extension
使用所需属性扩展此类型

创建复杂的纯文本元素
xs:simpleContent
用于从其他内置类型或以前定义的类型派生类型。它需要
xs:extension
xs:restriction
具有定义要扩展或限制的基类型(简单)的属性
base
的子元素。在这种情况下,基类型可以是
xs:string
xs:extension
xs:restriction
包含所需的新功能

<xs:element name="var">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Ld" type="xs:string" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>

可以在
xs:extension
中添加几个属性定义-在这种情况下,我们只需要一个
xs:simpleContent
不能包含任何元素定义,只能包含新属性。如果基类型与任何内置架构数据类型不同,例如,如果文本有一些长度限制,则必须将基类型定义为全局简单类型定义,并在
base
属性中使用其名称


允许在可以包含其他元素的元素中使用文本更简单:定义元素内容时只需使用

您遇到了什么问题?美国汉诺威产科信托公司;妇科公司马萨诸塞州汉诺威韦伯斯特街135号02339有重复的布拉布拉赫行,其中“回答1”可以是随机的“回答”,布拉赫布拉赫可以是文本。。我该如何处理这些问题?当然,除非他不是Windows程序员,也没有Visual Studio陛下我没有想到:)但不管怎样,有很多xml工具提供了这一功能。您的答案似乎不允许在
中包含文本,因此它实际上只部分解决了问题。jasso,是的,这是真的,我忘了在中添加type=“string”元素,但我确信您得到了它的整体jist。
<xsd:group ref="Answers"
                          minOccurs="0"
                          maxOccurs="unbounded"/>
<element name="answers" type="Answers"/>
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://my.example.com/schema"
xmlns:mec="http://my.example.com/schema"
<xs:element name="var">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Ld" type="xs:string" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>