我试图了解 xml 和 xsd 文件根元素是如何工作的。我已经通过谷歌阅读了一些文章,一些关于 stackoverflow 的文章,但仍然不明白以下内容是如何工作的。这里有一些我已经读过的文章。
targetNamespace 和 xmlns
XML 中的“xmlns”是什么意思?
https://softwareengineering.stackexchange.com/questions/122002/why-do-we-need-uris-for-xml-namespaces
对于我的问题,我使用 w3school 中的示例。(他们也无法以我能理解它是如何工作的方式来解释它。)https://www.w3schools.com/xml/schema_intro.asp
XML 文件
文件名:note.xml
URL:???
<?xml version="1.0"?>
<note xmlns="https://www.w3schools.com" [XML 1]
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [XML 2]
xsi:schemaLocation="https://www.w3schools.com note.xsd"> [XML 3]
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XSD 文件
文件名:note.xsd
网址:https : //www.w3schools.com note.xsd ??????
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" [XSD 1]
targetNamespace="https://www.w3schools.com" [XSD 2]
xmlns="https://www.w3schools.com" [XSD 3]
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
据我了解,我们有
一种“语法”,它解释了 xml 必须如何组成并且写在 xsd 中。例如,我们有一个复杂的类型或具有属性的元素。该语法由 w3 在该 URL 上指定:http: //www.w3.org/2001/XMLSchema,我们使用来自 w3 的语法。
b) 除了该语法之外,我们还定义了一些元素的名称,例如 to-element 或 from-element。只有具有这些名称的元素才能在由该 note.xsd 验证/定义的 xml 中使用。
我的问题
XML1-3 和 XSD1-3 行中的每个代码是什么意思以及如何使用这些部分。我会写下我认为到目前为止我所理解的。请用简单的话解释我(不像 w3schools 或其他网站那样复杂)绿色和蓝色部分各自的作用,如何使用它以及它指向的位置。对于这个例子,我必须假设 note.xml 和 note.xsd 的 URL 是什么?
[URL note.xml]
[URL note.xsd]
[XML 1]xmlns="https://www.w3schools.com"
[XML 2]xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
[XML 3]xsi:schemaLocation= “https://www.w3schools.com note.xsd”
[XSD 1]xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
[XSD 2]targetNamespace="https://www.w3schools.com"
[XSD 3]xmlns=" https://www.w3schools.com"
[URL note.xml 和 note.xsd] 两个文件的 URL 都是https://www.w3schools.com ??
[XML1-3]我很困惑,这是什么意思?
[XSD 1]xmlns 表示 xml 命名空间并指向我使用语法的 URL。我们还声明只有所有标有 xs 的“语法”/元素使用写在http://www.w3.org/2001/XMLSchema
[XSD 2]targetNamespace 的“语法”,我使用它的目的和位置它指向???
[XSD 3]没有 xs 的 xmlns 和 XSD1 一样吗?只是它会声明没有 xs 的元素从哪里获取“语法”?这令人困惑,因为它不会又是http://www.w3.org/2001/XMLSchema吗?