gpt4 book ai didi

xml - 我的 XSD XML 架构有什么问题?

转载 作者:行者123 更新时间:2023-12-04 18:24:06 25 4
gpt4 key购买 nike

自从我弄乱模式以来,我已经 3 年了,我记得它们对 namespace 前缀和所有东西都非常挑剔。我还记得在 Eclipse 中使用 XML 编辑器(我有 Indigo)时,如果不展开复杂类型,就不会那么容易地解析。

那么,XML 专家是否可以查看我的 XML 文件并告诉我前置的 XSD XML 模式有什么问题?

谢谢。

再见

+++++

Eclipse 提示:

文档中根元素之后的标记必须格式正确。

我应该指出我手动创建了 XML 并在以下位置自动生成了 XML:

http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx

(单独的复杂类型:就像我 3 年前手动使用亚马逊的亚马逊卖家中心 XML 文件所做的那样)

如果在我看来,应该在一种情况下使用 ref,但我会听从专家的意见。

+++++

<?xml version="1.0" encoding="utf-16"?>

<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="idioms" type="idiomsType" />
<xsd:complexType name="idiomsType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="idiom" type="idiomType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="idiomType">
<xsd:sequence>
<xsd:element name="phrase" type="xsd:string" />
<xsd:element name="meaning" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

<idioms>
<idiom>
<phrase>A bit much</phrase>
<meaning>Excessive or annoying.</meaning>
</idiom>
<idiom>
<phrase>A bridge too far</phrase>
<meaning>Act of overreaching.</meaning>
</idiom>
</idioms>

好的,更新。我在 XML 中包含 XSD 的捷径是非法的。所以我把它放回XSD文件中。我还了解到我不能以 xml 开头,所以我将其更改为 'tc'。

XSD 现在是正确的(与我展开 Amazon Seller Central XSD 的风格相同)。
<?xml version="1.0" encoding="utf-16"?>

<xsd:schema xmlns:tcidioms="urn:tcidioms" targetNamespace="urn:tcidioms" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="idioms" type="tcidioms:idiomsType"/>
<xsd:complexType name="idiomsType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="idiom" type="tcidioms:idiomType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="idiomType">
<xsd:sequence>
<xsd:element name="phrase" type="xsd:string" />
<xsd:element name="meaning" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

但是我在尝试将其包含在我的 XML 文件中时遇到了麻烦,现在看起来像这样(XML 和 XSD 在同一目录中):

它提示:没有为文档检测到语法约束(DTD 或 XML 模式)。

这意味着我的 XML 文档中的 2 行不正确。我已经尝试了几种变体来包含这个文件,但没有一个奏效。保留我的这个 XML(和 XSD)将从本地文件系统中读取,而不是通过 http。它还会以这种方式验证吗?
<?xml version="1.0" encoding="utf-16"?>

<idioms xmlns:tcidioms="urn:tcidioms" targetNamespace="urn:tcidioms ./EnglishIdioms.xsd">
<idiom>
<phrase>A bit much</phrase>
<meaning>Excessive or annoying.
</meaning>
</idiom>
<idiom>
<phrase>A bridge too far</phrase>
<meaning>Act of overreaching, going too far
and getting into trouble
or
failing.
</meaning>
</idiom>
</idioms>

Visual Studio 2010(它创建了俄罗斯娃娃风格的模式):

XML 文件虽然设置为使用 VS2010 界面中的模式,但在代码中没有显示?
<?xml version="1.0" encoding="utf-8"?>

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="idioms">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="idiom">
<xs:complexType>
<xs:sequence>
<xs:element name="phrase" type="xs:string" />
<xs:element name="meaning" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

<?xml version="1.0" encoding="utf-8"?>

<idioms>
<idiom>
<phrase>A bit much</phrase>
<meaning>Excessive or annoying.</meaning>
</idiom>
<idiom>
<phrase>A bridge too far</phrase>
<meaning>Act of overreaching.</meaning>
</idiom>
<idiom>
<phrase>A chain is no stronger than its weakest link</phrase>
<meaning>The weakest part of an object is it's strength.</meaning>
</idiom>
</idioms>

最佳答案

您的根元素未正确关闭。

使用</idioms> ,而不是 <idioms> :)

更新:

缺少命名空间可能是问题(在模式和 xml 中)。

关于xml - 我的 XSD XML 架构有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com