gpt4 book ai didi

xml - xs :choice unbounded list

转载 作者:数据小太阳 更新时间:2023-10-29 02:09:39 25 4
gpt4 key购买 nike

我想为 XML 文档定义一个 XSD 架构,示例如下:

<?xml version="1.0" encoding="utf-8"?>
<view xmlns="http://localhost/model_data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost/model_data XMLSchemaView.xsd" path="wibble" id="wibble">
<text name="PageTitle">Homepage</text>
<text name="Keywords">home foo bar</text>
<image name="MainImage">
<description>lolem ipsum</description>
<title>i haz it</title>
<url>/images/main-image.jpg</url>
<type>image/jpeg</type>
<alt>alt text for image</alt>
<width>400</width>
<height>300</height>
</image>
<link name="TermsAndConditionsLink">
<url>/tnc.html</url>
<title>Terms and Conditions</title>
<target>_blank</target>
</link>
</view>

有一个 View 根元素,然后是未知数量的字段元素(各种类型)。我正在使用以下 XSD 架构:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost/model_data" targetNamespace="http://localhost/model_data" id="XMLSchema1">
<xs:element name="view" type="model_data"/>
<xs:complexType name="model_data">
<xs:choice maxOccurs="unbounded">
<xs:element name="text" type="text_field"/>
<xs:element name="image" type="image_field"/>
<xs:element name="link" type="link_field"/>
</xs:choice>
<xs:attribute name="path" type="xs:string"/>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
<xs:complexType name="image_field">
<xs:all>
<xs:element name="description" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="url" type="xs:string"/>
<xs:element name="alt" type="xs:string"/>
<xs:element name="height" type="xs:int"/>
<xs:element name="width" type="xs:int"/>
</xs:all>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="text_field">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="link_field">
<xs:all>
<xs:element name="target" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="url" type="xs:string"/>
</xs:all>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:schema>

这看起来应该对我有用,但它不起作用,而且我总是收到以下错误:

Element <text> is not allowed under element <view>.
Reason: The following elements are expected at this location (see below)
<text>
<image>
<link>
Error location: view / text
Details
cvc-model-group: Element <text> unexpected by type 'model_data' of element <view>.
cvc-elt.5.2.1: The element <view> is not valid with respect to the actual type definition 'model_data'.

我以前从未真正使用过 XSD 架构,所以如果有人能指出我哪里出错了,我将不胜感激。

最佳答案

更新:

我想我发现了问题 - 这是这里的声明:

<view 
xmlns="http://localhost/model_data"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
==> xsi:schemaLocation="http://localhost/model_data XMLSchemaView.xsd" <====
path="wibble" id="wibble">

您似乎在这里指的是本地主机上的一个位置,指的是一个 XSD 文件 - 它真的在那里吗???

如果我从 XML 中删除这一行,一切都会正常验证。

这是测试的另一个遗留物吗??

关于xml - xs :choice unbounded list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591506/

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