我正在使用复杂types的xsd:all 。 当我错过任何强制性的元素,而validation它会显示所有的元素。 它不会显示确切的遗漏元素。 但是如果我使用xsd:sequence我可以得到确切的错过的元素。 这两者有什么区别? xsd:sequence :XML元素的xsd:sequence必须相同。 但是, xsd:all :XML元素可能是任何顺序。
我知道我以前做过这件事,但今天不行,我也找不到解释如何做的地方。 这可能是我的睡眠不足,但我怀疑是gremlins。 我有一个XML文档和一个充满XSD的目录来定义它。 如何将Visual IDE设置为向我通知validation失败,然后在给定上下文中提供有效标签和属性的智能列表? 我曾经尝试过: 我用XML文档将XSD添加到了项目中。 我已经将XSD添加到XML模式列表(在XML / Schemas …菜单项下)。 我甚至已经将schemaLocation和noNamespaceSchemaLocation属性包含到了XML文档中。 Visual Studio仍然没有放弃任何有用的debugging或编辑信息。 我试了2010年和2008年(我以前在2008年做过) 更新:我有另一个开发人员尝试这个,也失败了。 他知道他已经用其他XML文档完成了这个工作。 然后我下载了Oxygen XML编辑器,它在相同的XML和XSD文件上工作得很好,所以文件看起来很好(或者Oxygen更宽容/灵活…)
elementFormDefault做什么,什么时候使用? 所以我find了elementFormDefault值的一些定义: 限定 – 元素和属性位于模式的目标名称空间中 不合格 – 元素和属性没有名称空间 所以从这个定义我会认为,如果一个架构设置为合格,那么为什么你必须在名称空间的前缀types? 你甚至有什么情况下,你会有一个不合格的事情? 我尝试了Googlesearch,但是我得到的只是一些W3C页面,这些页面非常难以理解。 这是我正在使用的文件,为什么我需要将types声明为target:TypeAssignments当我将targetNamespace声明为与xmlns:target相同? <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:target="http://www.levijackson.net/web340/ns" targetNamespace="http://www.levijackson.net/web340/ns" elementFormDefault="qualified"> <element name="assignments"> <complexType> <sequence> <element name="assignments" type="target:TypeAssignments" minOccurs="1" maxOccurs="unbounded"/> </sequence> </complexType> </element> <complexType name="TypeAssignments"> <sequence> <element name="assignment" type="target:assignmentInfo" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="assignmentInfo"> <sequence> <element name="name" type="string"/> <element name="page" type="target:TypePage"/> <element name="file" type="target:TypeFile" minOccurs="0" […]
我发现这个问题的一些提示,但仍然没有帮助我。 这是我的XML <?xml version="1.0" encoding="UTF-8"?> <work xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2001/XMLSchema-instance" tns:schemaLocation="myXSDSchema.xsd"> <tns:Objects> <tns:Object Name=":" Location=":"> </tns:Object> </tns:Objects> </work> 这是我的XSD文件: <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns = "http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> (some checks) </schema> 我的XSD文件与XML位于同一个文件夹中。 如何链接这两个文件?
我只需要一个必需的属性或元素,如果select一个枚举的特定值。 示例如下: <xs:element name="TYPE" type="TestEnum" /> <!– // This Element should only required when TYPE = INTERNATIONAL –> <xs:element name="IBAN"/> </xs:complexType> <xs:simpleType name="TestEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="NATIONAL"/> <xs:enumeration value="INTERNATIONAL"/> </xs:restriction> </xs:simpleType>
我有这样的XML文件 <listOfA> <a type="1"> <name></name> <surname></surname> </a> <a type="2"> <name></name> <id></id> </a> </listOfA> 我想创build一个XSD,所以如果属性“type”的值为1,name和surname元素必须存在,而当它是2时,name和id必须在那里。 我试图在XSD架构生成器中生成XSD,但它使得姓和id元素minOccurs = 0。 我怎么能使它工作?