Inhaltsverzeichnis
(1)Globale Komponenten im Schema" > (1)Globale Komponenten im Schema
Globale Komponenten beziehen sich auf die direkten untergeordneten Knoten von das Element xsd:schema, einschließlich Elementdeklarationen, Attributdeklarationen, komplexe/einfache Typdefinitionen, Gruppendefinitionen und Attributgruppendefinitionen " > Globale Komponenten beziehen sich auf die direkten untergeordneten Knoten von das Element xsd:schema, einschließlich Elementdeklarationen, Attributdeklarationen, komplexe/einfache Typdefinitionen, Gruppendefinitionen und Attributgruppendefinitionen
Manchmal möchten Sie nicht-globale Komponenten im Zielraum definieren, Sie können die folgende Methode verwenden: >" > Manchmal möchten Sie nicht-globale Komponenten im Zielraum definieren, Sie können die folgende Methode verwenden: >
     3、XML文档中命名空间" >     3、XML文档中命名空间
     (1).名称空间限定整个XML文档" >     (1).名称空间限定整个XML文档
     (2)名称空间只针对XML文档中的一部分" >     (2)名称空间只针对XML文档中的一部分
     (3)嵌套的命名空间" >     (3)嵌套的命名空间
     (4)schemaLocation" >     (4)schemaLocation
   (5)noNamespaceSchemaLocation " >   (5)noNamespaceSchemaLocation 
Heim Backend-Entwicklung XML/RSS-Tutorial Detaillierte Einführung in XML- und Schema-Namespaces

Detaillierte Einführung in XML- und Schema-Namespaces

Apr 01, 2017 pm 01:51 PM

XML und Schema zeichnen sich dadurch aus, dass sie plattformunabhängig, technologieanbieterunabhängig, einfach und einheitlich in den Spezifikationen sind. Sie sind äußerst offen und daher weit verbreitet und einfach zu verwenden . In XML, Schema und persönlich Eine Sache, die meiner Meinung nach schwer zu verstehen ist, ist der Namespace Problem, das in diesem Blog ausführlich beschrieben wird.

Der -Namespace ist ein einheitliches Namenselement, das vom W3C-Empfehlungsstandard bereitgestellt wird und Mechanismus für Attribute Verwenden Sie Namespaces, um Elemente und Attribute aus verschiedenen Markup-Vokabularen in XML-Dokumenten eindeutig zu identifizieren und zu kombinieren, um Namenskonflikte zu vermeiden 🎜>
Personen, die
DTD sollte wissen, dass Namenskonflikte ein großes Problem in DTD sind und die Einführung des Namespace-Konzepts in Schema dieses Problem sehr gut löst:

1. Deklarieren Sie den Namespace

Die allgemeine Form einer Namespace-Deklaration lautet: Der erste Teil ist ein Schlüsselwort xmlns:, Der zweite Teil ist das Präfix des Namespace, der dritte Teil ist ein Gleichheitszeichen, der vierte Teil besteht aus doppelten Anführungszeichen und der fünfte Teil ist Der Namespace-ID-URI ist enthalten. Es ist zu beachten, dass das Präfix des Namespace nicht XML sein darf , da diese -Zeichenfolge

für spezielle Zwecke in XML reserviert ist. Beispiel:


Sie können den Namespace auch implizit deklarieren, also den Doppelpunkt und das Namespace-Präfix weglassen. Beispiel:

xmlns:tns="http://www.whtest.com/"    
//其中tns为前缀。
Nach dem Login kopieren


xmlns="http://www.whtest.com/"   //注意在一个文档中只能有一个隐式声明的命名空间
Nach dem Login kopieren

2.
Namespace im Schema:

(1)Globale Komponenten im Schema

Globale Komponenten beziehen sich auf die direkten untergeordneten Knoten von das Element xsd:schema, einschließlich Elementdeklarationen, Attributdeklarationen, komplexe/einfache Typdefinitionen, Gruppendefinitionen und Attributgruppendefinitionen


(2) Nicht-globale Komponenten im Schema

<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“>
   // Schema的目标名称空间用属性targetNamespace在根元素上定义。
   //Schema的全局成分被放在名称空间http://www.test.com/ns/ns_test里。
Nach dem Login kopieren

Manchmal möchten Sie nicht-globale Komponenten im Zielraum definieren, Sie können die folgende Methode verwenden: >

Der Standardwert des Attributs elementFormDefault ist unqualifiziert, was bedeutet, dass im Ziel-Namespace nur globale Komponenten definiert sind. Weisen Sie den Wert von elementFormDefault qualifiziert zu, damit der Ziel-Namespace nicht-globale Elementdefinitionen enthält. Ebenso ermöglicht die Zuweisung des Werts von attributeFormDefault zu „qualified“, dass der Ziel-Namespace nicht-globale Attribut-Definitionen enthalten kann. Wie folgt:

<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“
elementFormDefault=“qualified“>
Nach dem Login kopieren

Sie können auch den Wert des Attributformulars ändern, sodass einige nicht-globale Komponenten nicht im Namespace enthalten sind . Wie folgt:

<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“
attributeFormDefault=“qualified“>
Nach dem Login kopieren
<xsd:element name=”name” type=”xsd:string” form=”unqualified”/>
Nach dem Login kopieren

(3)targetNamespace

xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找。

targetNamespace定义了Schema定义的新元素与属性的名称空间。而"www.w3.org/2001/XMLSchema"名称空间则定义了element, attribute, complexType, group, simpleType等元素。

若自身并不使用重用组件,仅供外部使用的话,则只定义targetNameSpace就可以,不用指定别名。

3、XML文档中命名空间

在XML中,名称空间的使用涉及范畴的概念,范畴即名称空间的覆盖范围,它指的是哪些元素和属性在该名称空间中,哪些不在该名称空间中。名称空间既可以限定整个XML文档,也可以只针对XML文档中的一部分。

(1).名称空间限定整个XML文档

<?xml version=”1.0”?>
<member_details xmlns=”http://www.testns.com/ns.xsd”>
   <name>Tom</name>
   <age>12</age>
   <sex>male</sex>
</member_details>
Nach dem Login kopieren

(2)名称空间只针对XML文档中的一部分

<?xml version=”1.0”?>
<member_details>
   <name xmlns=”http://www.testns.com/ns.xsd”>Tom</name>
   <age>12</age>
   <sex>male</sex>
</member_details>
Nach dem Login kopieren

(3)嵌套的命名空间

<?xml version=”1.0”?>
<member_details xmlns=”http://www.testns.com/ns.xsd”
xmlns:newns=”http://www.testns/newns.xsd”>
   <name>Tom</name>
   <age>12</age>
   <newns:sex>male</sex>
</member_details>
// 此例中,除了元素sex被定义在新的名称空间中外,其余的元素仍然使用原来的名称空间。
Nach dem Login kopieren

(4)schemaLocation

schemaLocation 属性引用具有目标名称空间的 XML 架构文档(.xsd)。该xml文件中用到的所有新创的元素、属性等的.xsd文件都必须在这里声明。

<xsi:schemaLocation="list of anyURI" >
Nach dem Login kopieren

其中的anyURI是一个架构位置,该架构包含限定的(具有名称空间的架构)架构构造。每一对中的第一个 URI 引用是名称空间名称,第二个则是描述名称空间的架构的位置。

将具有目标名称空间的架构文档与实例文档相关联。可以列出多对 URI 引用,每一对都有不同的名称空间名称部分。
根据万维网联合会 (W3C) XML 架构建议,XML 实例文档可以同时指定 xsi:schemaLocation 和 xsi:noNamespaceSchemaLocation 属性。此外,还可以多次列出同一个命名空间。

以下示例显示如何使用 xsi:schemaLocation 属性为多个 XML 架构文档提供位置信息。

<p:Person
   xmlns:p="http://contoso.com/People"
   xmlns:v="http://contoso.com /Vehicles"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation=
     "http://contoso.com/People 
      http://contoso.com/schemas/people.xsd 
      http://contoso.com/schemas/Vehicles
      http://contoso.com/schemas/vehicles.xsd
      http://contoso.com/schemas/People
      http://contoso.com/schemas/people.xsd">
   <name>John</name>
   <age>28</age>
   <height>59</height>
   ....
</p:Person>
Nach dem Login kopieren

(5)noNamespaceSchemaLocation

noNamespaceSchemaLocation 属性引用没有目标名称空间的 XML 架构文档。

    <xsi:noNamespaceSchemaLocation="anyURI" >
Nach dem Login kopieren

与SchemaLocation相同anyURI是一个架构位置,该架构包含非限定的(没有名称空间的架构)架构构造。

不要求 XML 架构有名称空间。若要为没有目标名称空间的 XML 架构指定位置,请使用 noNamespaceSchemaLocation 属性。此属性中引用的 XML 架构不能有目标名称空间。因为此属性不接受 URL 列表,所以只能指定一个架构位置。
根据万维网联合会 (W3C) XML 架构建议,XML 实例文档可以同时指定 xsi:schemaLocation 和 xsi:noNamespaceSchemaLocation 属性。

以下示例显示如何对包含非限定元素的实例文档使用 xsi:noNamespaceSchemaLocation 属性。

<?xml version="1.0" encoding="UTF-8"?>
<book:books xmlns:book="http://www.example.org/02"
	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	  xsi:noNamespaceSchemaLocation="02.xsd">
	<book:book id="1">
		<book:title>Java in action</book:title>
		<book:content>Java is good</book:content>
		<book:author>Bruce</book:author>
	</book:book>
</book:books>
Nach dem Login kopieren


     通过上边的分析,我们可以看到,XML和Schema的命名空间标签使用格式是相同的(这也是Schema相对与DTD的优势),但XML和Schema都有各自的独特的属性,这也是由他们不同的功能决定的,Schema主要给XML提供服务,所以会规定好targetNameSpace来声明命名空间的名字,而XML需要使用schema的服务,所以需要SchemaLocation来声明使用的命名空间。

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in XML- und Schema-Namespaces. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Konvertieren Sie XML-Daten in Python in das CSV-Format Konvertieren Sie XML-Daten in Python in das CSV-Format Aug 11, 2023 pm 07:41 PM

Konvertieren Sie XML-Daten in Python in das CSV-Format. XML (ExtensibleMarkupLanguage) ist eine erweiterbare Auszeichnungssprache, die häufig zur Datenspeicherung und -übertragung verwendet wird. CSV (CommaSeparatedValues) ist ein durch Kommas getrenntes Textdateiformat, das häufig für den Datenimport und -export verwendet wird. Bei der Datenverarbeitung ist es manchmal erforderlich, XML-Daten zur einfachen Analyse und Verarbeitung in das CSV-Format zu konvertieren. Python ist mächtig

PHP-Fehler beheben: Die angegebene Namespace-Klasse wurde nicht gefunden PHP-Fehler beheben: Die angegebene Namespace-Klasse wurde nicht gefunden Aug 18, 2023 pm 11:28 PM

PHP-Fehler beheben: Die angegebene Namespace-Klasse wurde nicht gefunden. Bei der Entwicklung mit PHP treten häufig verschiedene Fehlermeldungen auf. Einer der häufigsten Fehler ist „Die angegebene Namespace-Klasse wurde nicht gefunden“. Dieser Fehler wird normalerweise dadurch verursacht, dass auf die importierte Klassendatei nicht ordnungsgemäß auf den Namespace verwiesen wird. In diesem Artikel wird erläutert, wie Sie dieses Problem lösen können, und es werden einige Codebeispiele bereitgestellt. Schauen wir uns zunächst ein Beispiel für eine häufige Fehlermeldung an: Fatalerror:UncaughtError:C

Umgang mit XML- und JSON-Datenformaten in der C#-Entwicklung Umgang mit XML- und JSON-Datenformaten in der C#-Entwicklung Oct 09, 2023 pm 06:15 PM

Für den Umgang mit XML- und JSON-Datenformaten in der C#-Entwicklung sind spezifische Codebeispiele erforderlich. In der modernen Softwareentwicklung sind XML und JSON zwei weit verbreitete Datenformate. XML (Extensible Markup Language) ist eine Auszeichnungssprache zum Speichern und Übertragen von Daten, während JSON (JavaScript Object Notation) ein leichtes Datenaustauschformat ist. Bei der C#-Entwicklung müssen wir häufig XML- und JSON-Daten verarbeiten und verarbeiten. Dieser Artikel konzentriert sich auf die Verwendung von C# zum Verarbeiten und Anhängen dieser beiden Datenformate

Verwendung von Python zur Implementierung der Datenüberprüfung in XML Verwendung von Python zur Implementierung der Datenüberprüfung in XML Aug 10, 2023 pm 01:37 PM

Verwendung von Python zur Implementierung der Datenüberprüfung in XML Einführung: Im wirklichen Leben haben wir es oft mit einer Vielzahl von Daten zu tun, wobei XML (Extensible Markup Language) ein häufig verwendetes Datenformat ist. XML weist eine gute Lesbarkeit und Skalierbarkeit auf und wird häufig in verschiedenen Bereichen wie Datenaustausch, Konfigurationsdateien usw. verwendet. Bei der Verarbeitung von XML-Daten müssen wir die Daten häufig überprüfen, um die Integrität und Richtigkeit der Daten sicherzustellen. In diesem Artikel wird erläutert, wie Sie mit Python die Datenüberprüfung in XML implementieren und die entsprechenden Informationen bereitstellen

POJO mithilfe der Jackson-Bibliothek in Java in XML konvertieren? POJO mithilfe der Jackson-Bibliothek in Java in XML konvertieren? Sep 18, 2023 pm 02:21 PM

Jackson ist eine Java-basierte Bibliothek, die zum Konvertieren von Java-Objekten in JSON und JSON in Java-Objekte nützlich ist. JacksonAPI ist schneller als andere APIs, benötigt weniger Speicherbereich und eignet sich für große Objekte. Wir verwenden die Methode writeValueAsString() der Klasse XmlMapper, um das POJO in das XML-Format zu konvertieren. Die entsprechende POJO-Instanz muss als Parameter an diese Methode übergeben werden. Syntax publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingExceptionExampleimp

C++-Syntaxfehler: Undefinierter Namespace verwendet, wie gehe ich damit um? C++-Syntaxfehler: Undefinierter Namespace verwendet, wie gehe ich damit um? Aug 21, 2023 pm 09:49 PM

C++ ist eine weit verbreitete Programmiersprache auf hoher Ebene. Sie verfügt über eine hohe Flexibilität und Skalierbarkeit, erfordert jedoch auch, dass Entwickler ihre grammatikalischen Regeln strikt beherrschen, um Fehler zu vermeiden. Einer der häufigsten Fehler ist die „Verwendung eines undefinierten Namespace“. In diesem Artikel wird erläutert, was dieser Fehler bedeutet, warum er auftritt und wie er behoben werden kann. 1. Wozu dient ein undefinierter Namespace? In C++ sind Namespaces eine Möglichkeit, wiederverwendbaren Code zu organisieren, um ihn modular und lesbar zu halten. Sie können Namespaces verwenden, um Funktionen mit demselben Namen zu erstellen

Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? May 05, 2024 am 09:15 AM

Verwenden Sie PHPXML-Funktionen, um XML-Daten zu verarbeiten: XML-Daten analysieren: simplexml_load_file() und simplexml_load_string() laden XML-Dateien oder Strings. Auf XML-Daten zugreifen: Verwenden Sie die Eigenschaften und Methoden des SimpleXML-Objekts, um Elementnamen, Attributwerte und Unterelemente abzurufen. XML-Daten ändern: Fügen Sie neue Elemente und Attribute mit den Methoden addChild() und addAttribute() hinzu. Serialisierte XML-Daten: Die Methode asXML() konvertiert ein SimpleXML-Objekt in einen XML-String. Praxisbeispiel: Produkt-Feed-XML analysieren, Produktinformationen extrahieren, umwandeln und in einer Datenbank speichern.

See all articles