gpt4 book ai didi

xml - 如何将命名空间添加到 XSD?

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

以下是我的 XML 及其关联的 XSD:

XML

<?xml version="1.0" encoding="UTF-8" ?>
<!-- <!DOCTYPE people SYSTEM "validator.dtd"> -->

<people xmlns:xsi="http://www.w3c.org/200/10/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="student.xsd">
<student>
<name>John</name>
<course>Computer Technology</course>
<semester>6</semester>
<scheme>E</scheme>
</student>

<student>
<name>Foo</name>
<course>Industrial Electronics</course>
<semester>6</semester>
<scheme>E</scheme>
</student>
</people>

XSD
<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="people">
<xs:complexType>
<xs:sequence>
<xs:element name="student" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="course" type="xs:string" />
<xs:element name="semester">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1" />
<xs:enumeration value="2" />
<xs:enumeration value="3" />
<xs:enumeration value="4" />
<xs:enumeration value="5" />
<xs:enumeration value="6" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="scheme">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value = "E|C" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>



我现在想要做的是添加一个命名空间——一个假设的学生所属的大学——比如卡内基梅隆大学。

我知道如何将命名空间添加到 XML 文档。这将如下所示: xmlns:cmu = "http://www.carnegiemellon.com/ns/students" 并且在 XML 中会有相关的前缀。

我想知道的是: 如何使用 XSD 验证带有前缀的 XML?

最佳答案

我的回答 here应该回答你的问题......不过,你必须考虑以下几点:

人们和学生是否在同一个命名空间中?如果是,那么只需添加一个带有您提到的 uri 的 targetNamespace。否则,您必须添加一个 xsd:import,并使用您想要的定义学生的 targetNamespace 创建一个新的 XSD。

关于xml - 如何将命名空间添加到 XSD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16471559/

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