0

我试图了解 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吗?

4

0 回答 0