백엔드 개발 XML/RSS 튜토리얼 비누 관련 XML 지식에 대한 자세한 소개

비누 관련 XML 지식에 대한 자세한 소개

Apr 01, 2017 pm 01:47 PM

1. xml
soap 개요 이 표준의 작성자는 실제로 이를 표현하는 방법을 찾을 때 많은 옵션이 있었지만 궁극적으로 기존 기술을 최대한 사용하고 비누 정보의 내용을 설명하는 데 필요한 새로운 용어의 수를 최소화하기로 결정했습니다. 전체 이름은 "확장 가능한 마크업 언어"입니다.
XML 언어에는 비누보다 더 많은 기능이 포함되어 있습니다. 표준 v1.1 "XML 언어와의 관계" 섹션 3에는 "문서 유형 선언"이 나와 있습니다. (문서 유형 선언, DTD)는 SOAP 메시지에 포함되어서는 안 됩니다." 처리 지침은 SOAP 메시지에 포함되어서는 안 됩니다. SOAP, 우리는 이 결정의 지혜를 빨리 이해할 수 있습니다. 개발자는 비누를 사용할 때 모든 기능을 갖춘 XML 파서를 가질 필요가 없기 때문에 비누를 사용하여 솔루션을 구현하는 것은 쉽습니다. 다음 개념:
1. URI(Uniform Resource Identifier).
2.xml 이름 공간.

1.1.
인터넷에서 고유한 리소스 항목에 액세스하려면 여러 객체에서 해당 항목을 식별하는 방법을 알아야 합니다. URI(Uniform Resource Descriptor)는 각 리소스에 부여된 이름입니다. URI는 다음과 같습니다.

스키마별 부분에는 줄 문자(/)가 포함되는 경우가 많습니다. 이러한 슬래시 문자는 스키마의 계층 구조를 나타냅니다. path
1.1.1 URL(Uniform Resource Locator) 가장 친숙한 URI는 일반적으로 URL 주소라고 부르는 URL(Uniform Resource Locator)입니다. URL 주소 역시 URI 식별자의 주소 표현 방식을 준수해야 합니다. URL 주소 중 스키마별 부분의 형식은 다음과 같습니다.

//<user>:<password>@<host>:<port>/<url-path>
로그인 후 복사

각 구성 요소의 의미 위 구문의 요소는 다음과 같습니다.
1.user: 대상 주소의 사용자 이름(선택 사항).
2.password: 사용자 사용자에게 할당된 비밀번호입니다(선택 사항).
3.host: 인터넷 프로토콜 주소 또는 네트워크 호스트의 전체 도메인 이름(필수).
4.port: 연결을 설정하는 데 사용되는 포트 번호입니다. 대부분의 프로토콜에는 기본 포트 번호가 있습니다. 예를 들어 http는 기본적으로 통신에 포트 80을 사용합니다(선택 사항).

5.url-path: 특정 리소스에 접근하기 위한 상세 경로입니다. 호스트 이름이나 포트 번호 바로 뒤에 오는 슬래시 문자(/)는 URL 경로의 일부가 아닙니다.


1.1.2 통일 리소스 이름(URN)
유비쿼터스 URL 주소에 비해 대부분의 웹 사용자는 통일 리소스 이름(URN)에 훨씬 익숙하지 않습니다. URN과 URL의 차이점은 전자가 고유한 물리적 위치로 구문 분석되지 않는다는 것입니다. URN은 영구적인 리소스 식별자입니다(일부 동적 경로 정보가 있는 URL 주소와는 다름). 이를 통해 특정 이름 공간의 다른 유형의 식별자를 URN 공간에 매핑할 수 있습니다. 따라서 URN의 구문은 기존의 다양한 프로토콜을 사용하여 문자 데이터를 분석하고 인코딩하는 기능을 제공합니다. URN의 구성 규칙은 URI의 보편적인 규정을 준수합니다:
::=”urn:””:”
URN 이름은
문자열
"urn:"을 사용하여 이것이 URN 이름임을 나타내야 합니다. NID는 "Namespace ID"의 약어이고, NSS는 "Namespace-Specific
String
"의 약어로 NID가 나타내는 네임스페이스와 관련된 문자열을 제공합니다. URN 이름을 발견하면 NID 값을 기반으로 NSS 문자열을 해석하는 방법을 결정해야 합니다. URN 이름을 읽거나 사용할 때 선행 문자열 "urn:"과 내용의 문자는 대소문자를 구분한다는 점을 기억하세요.
URL과 URN은 URI의 가장 일반적인 두 가지 용도입니다. 나중에 URI의 또 다른 사용법을 살펴보겠습니다: xml Namespace(xml
namespace
). 1.2 XML 기본 XML 언어는 1996-1997년에 사람들의 눈에 들어왔습니다. 다음은 XML 코드 예입니다.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <artifactId>framework</artifactId>
        <groupId>com.**.framework</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>
</project>
로그인 후 복사

即使你从没度过xml程序代码,这个例子也不是很难懂。我们可以通过这段代码看出xml文档的一些编写规则。
(1)第一行是一条处理指令,作用是声明这份文档使用的xml版本和编码格式,文档中的这条语句并非不可或缺,但最好还是把它加载里面。
(2)xml文档必须有一个封闭元素(版本信息不能算作是一个封闭元素)。在例子中project把整个文档包括在了它的起始标记和结束标记之间。它还有几个子元素,子元素又可以嵌套定义。
(3)这段代码中的所有单词都不是xml的关键字。
(4)注意文档里标记不要拼错了。即使拼错了,xml语法分析器也会接受这份文档,但它不会正确解析你的意图了。如果我们想让xml语法分析器为我们做一些检查工作,并且只读取正确的数据结构,那可以加上一个文档类型说明(Document Type Declaration, DTD)或者一个xml大纲(xml schema)。这里不就DTD进行讨论了,soap技术规范的第三小节也已经明确规定“在soap信息中不得包含文档类型声明”。

1.3 xml大纲
xml大纲(xml schema)比DTD的描述能力更强。这两种事物都提供了对一个xml元素的结构进行定义的方法。虽然格式定义和DTD都允许对元素进行定义,但只有格式定义允许给出数据的类型信息。xml数据是基于文本的,它会用字符”4”而不是”0100”这样的二进制形式来表示数字4(xml允许在信息中对二进制数据进行编码,这样使我们能够把图像数据等内容夹在一条xml信息里发送出去)。

下面给出实例,感受下大纲优于DTD的事实。
一个简单的DTD有一些包含其他元素或字符数据的元素。最简单的元素声明是这样的:给出元素的名字,再把元素的内容定义为字符数据。如下所示:

<! ELEMENT element-name (#PCDATA)>
로그인 후 복사

一个元素可以由其他元素组合而成。如果一个元素不多不少只包含有某个给定元素的一个实例,我们就这样定义:

<! ELEMENT parentElement (childElement)> 
<! ELEMENT childElement (#PCDATA)>
로그인 후 복사

如果parentElement元素中可能包含零个或多个childElement元素,我们就用一个星号(*)来定义,如下:

<! ELEMENT parentElement (childElement *)> 
<! ELEMENT childElement (#PCDATA)>
로그인 후 복사

另外,还可以在一个DTD里指示出元素的组合情况,比如parentElement元素里包含有两种不同数据片段的情况,如下所示:

<! ELEMENT parentElement (childElement1, childElement2)>
<! ELEMENT childElement1 (#PCDATA)>
<! ELEMENT childElement2 (#PCDATA)>
로그인 후 복사

具体示例,比如图书馆里有很多书,书又有书名,作者,版权等属性,那定义的DTD文件Library.dtd可以是:

<! ELEMENT Library (Book*)>
<! ELEMENT Book (Title, Author*, Copyright)>
<! ELEMENT Title (#PCDATA)>
<! ELEMENT Author (#PCDATA)>
<! ELEMENT Copyright (#PCDATA)>
로그인 후 복사

Library是由零个或多个Book类型的元素组成的。每个Book又是由一个Title元素,零个或多个Author类型的元素和一个Copyright元素组成。Title,Author和Copyright这三种元素都包含着字符数据。我们使用这个DTD来检查xml内容,可以定义xml文档:

<?xml version=”1.0”?>
<!DOCTYPE Library PUBLIC “.” “Library.dtd”>
<Library>
<Book>
    <Title>Green Eggs</Title>
    <Author>Dr.Seuss</Author>
    <Copyright>1957</Copyright>
</Book>
<Book>
    <Title>Windows</Title>
    <Author>Scott</Author>
    <Copyright>2000</Copyright>
</Book>
</Library>
로그인 후 복사

语法分析器在需要对数据的类型进行检查时会自动加载Library.dtd,并根据它对文档的内容进行检查。这样做的好处是显而易见的,但如果我们还能在“这个元素包含着字符数据”以外给出更多的信息岂不是更好?因为各种理由,W3C最终发布了关于xml大纲的建议稿。下面用xml大纲重写刚才的DTD文档:

<Schema xmlns:xsd =”http://www.w3.org/2001/XMLSchema”
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
    <complexType name=”Book” content=”mixed”>
        <element type=”Title”></element>
        <element type=”Author”></element>
        <element type=”Copyright”></element>
    </complexType>
    <simpleType name=”Title” content=”textOnly” xsi:type=”string”></simpleType>
    <simpleType name=”Author” content=”textOnly” xsi:type=”string”></simpleType>
    <simpleType name=”Copyright” content=”textOnly” xsi:type=”integer”></simpleType>
</Schema>
로그인 후 복사

把上面这段代码存为一个xml文件(一般是xsd后缀)。在使用大纲的时候,只需简单地在文档里引用就行了,像下面:

<myLibrary:Library xmlns:myLibrary=”x-schema:http://www.scottseely.com/LibrarySchema.xml”>
    <myLibrary:Book>
        <myLibrary:Title>Green Eggs</ myLibrary:Title >
        <myLibrary:Author>Dr.seuss</ myLibrary:Author >
        < myLibrary:Copyright>1957</ myLibrary:Copyright>
    </myLibrary:Book>
    …
</myLibrary:Library>
로그인 후 복사

大纲和文档都使用了文本“text”。这个字符串的作用是通知语法分析器此文档里使用的变量名属于给定URI指定的名字空间。如果URI以x-schema打头,语法分析器就必须从指定地址加载相应的大纲文件。如果没有其他说明,带有xmlns声明的起始标记及对应的结束标记之间的所有元素都是指定的名字空间的一部分。

1.3.1 数据特征
为了更好地对数据进行定义和类型校验,xml大纲使用了“数据特征(facets)”来定义某个特定的数据类型的特性。一个数据值域空间的每个特性都必须用一个数据特征来定义。而一个“数据值域空间”就是一个给定的数据类型的全体有效数据值的集合。不同的数据类型是通过他们各自的数据特征来区分的。xml大纲文档定义的数据特征又分为两大类:基本特征和非基本特征。
一个基本特征就是某个数据值域空间里的数据值的一个抽象特性,他给出了这类数据值的一个基本特点。数据值的基本特征包括:
1.相等
2.顺序
3.边界
4.势。这是一个集合论的概念。有些值域空间里的值在数量上是有限的,而一些则是无限的。
5.数值
6.长度,最小长度,最大长度
7.式样
8.枚举
9.最大内边界,最大外边界,最小内边界,最大内边界
10.经度
11.数值范围
12.编码方式
13.持续时间
14.周期

1.3.2 数据类型
xml格式定义把数据类型和数据特征结合起来,这就使在格式定义中定义的数据项有了准确的含义。www.w3.org/2001/XMLSchema中定义了许多数据类型。

1.4 xml命名空间
在上面已经见过xml命名空间(xml namespaces)的用法了。命名空间的作用简单说来就是对用在一段上下文里的一组变量名进行定义和声明。名字空间可以使用任意URN,但前提条件是这个URN必须是独一无二的。

1.5 xml属性
出现在这本书里的所有xml文档都使用了元素来表示数据。但大家应该知道xml也支持属性概念。元素必须有起始标记和结束标记,属性则不同,他们不需要标记,只要把他们放到元素的起始标记里就行了。
对属性进行声明有三种不同的办法:
1.精心编写的xml,但不包含任何DTD或大纲
2.精心编写的xml,使用一个DTD
3.精心编写的xml,使用一个或者多个大纲。
第一种办法能正常运行,但实用环境中效果并不好,而soap又禁止使用DTD,所以我们就说下第三种方法吧。在xml大纲创建属性的时候,需要使用attributeType和attribute这两个关键字。这两个关键字只在大纲所属的名字空间里有意义。attributeType用来定义某个类型的特性,而attribute则指出该元素类型定义所针对的对象。
为了使用属性对book进行描述,相应的大纲应该是下面这个样子:

<Schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”   
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>  
    <attributeType name=”title” xsi:type=”string” />  
    <attributeType name=”name” xsi:type=”string” />  
    <complexType name=”Author” content=”empty”>  
        <attribute type=”name” />  
        <element type=”Author”>  
    </complexType>  
</Schema>
로그인 후 복사

attributeType的完整语法如下:

<attributeType default=”default value”
xsi:type=”type”
xsi:values=”enumerated values”
name=”idref”
required=”{yes|no}” >
로그인 후 복사

default:属性的默认值。 
xsi:type:该属性的数据类型。如果选择的是枚举类型,还要天上xsi:value。 
name:属性类型的名字。为了对attributeType进行类型检查,必须有一个名字。 
required:表明一个包含有attributeType的元素是否必须带有此处定义的属性。 

위 내용은 비누 관련 XML 지식에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PowerPoint를 사용하여 XML 파일을 열 수 있나요? PowerPoint를 사용하여 XML 파일을 열 수 있나요? Feb 19, 2024 pm 09:06 PM

XML 파일을 PPT로 열 수 있나요? XML, Extensible Markup Language(Extensible Markup Language)는 데이터 교환 및 데이터 저장에 널리 사용되는 범용 마크업 언어입니다. HTML에 비해 XML은 더 유연하고 자체 태그와 데이터 구조를 정의할 수 있으므로 데이터 저장과 교환이 더 편리하고 통합됩니다. PPT 또는 PowerPoint는 프레젠테이션 작성을 위해 Microsoft에서 개발한 소프트웨어입니다. 이는 포괄적인 방법을 제공합니다.

Python을 사용하여 XML 데이터 병합 및 중복 제거 Python을 사용하여 XML 데이터 병합 및 중복 제거 Aug 07, 2023 am 11:33 AM

Python을 사용하여 XML 데이터 병합 및 중복 제거 XML(eXtensibleMarkupLanguage)은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어입니다. XML 데이터를 처리할 때 여러 XML 파일을 하나로 병합하거나 중복된 데이터를 제거해야 하는 경우가 있습니다. 이 기사에서는 Python을 사용하여 XML 데이터 병합 및 중복 제거를 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. XML 데이터 병합 XML 파일이 여러 개인 경우 이를 병합해야 합니다.

Python에서 XML 데이터를 CSV 형식으로 변환 Python에서 XML 데이터를 CSV 형식으로 변환 Aug 11, 2023 pm 07:41 PM

Python의 XML 데이터를 CSV 형식으로 변환 XML(ExtensibleMarkupLanguage)은 데이터 저장 및 전송에 일반적으로 사용되는 확장 가능한 마크업 언어입니다. CSV(CommaSeparatedValues)는 데이터 가져오기 및 내보내기에 일반적으로 사용되는 쉼표로 구분된 텍스트 파일 형식입니다. 데이터를 처리할 때, 간편한 분석과 처리를 위해 XML 데이터를 CSV 형식으로 변환해야 하는 경우가 있습니다. 파이썬은 강력하다

Python을 사용하여 XML 데이터 필터링 및 정렬 Python을 사용하여 XML 데이터 필터링 및 정렬 Aug 07, 2023 pm 04:17 PM

Python을 사용하여 XML 데이터 필터링 및 정렬 구현 소개: XML은 데이터를 태그 및 속성 형식으로 저장하는 일반적으로 사용되는 데이터 교환 형식입니다. XML 데이터를 처리할 때 데이터를 필터링하고 정렬해야 하는 경우가 많습니다. Python은 XML 데이터를 처리하는 데 유용한 많은 도구와 라이브러리를 제공합니다. 이 기사에서는 Python을 사용하여 XML 데이터를 필터링하고 정렬하는 방법을 소개합니다. XML 파일 읽기 시작하기 전에 XML 파일을 읽어야 합니다. Python에는 많은 XML 처리 라이브러리가 있습니다.

Python은 XML과 JSON 간의 변환을 구현합니다. Python은 XML과 JSON 간의 변환을 구현합니다. Aug 07, 2023 pm 07:10 PM

Python은 XML과 JSON 간의 변환을 구현합니다. 소개: 일상적인 개발 프로세스에서 우리는 종종 서로 다른 형식 간에 데이터를 변환해야 합니다. XML과 JSON은 일반적인 데이터 교환 형식입니다. Python에서는 다양한 라이브러리를 사용하여 XML과 JSON을 변환할 수 있습니다. 이 문서에서는 코드 예제와 함께 일반적으로 사용되는 몇 가지 방법을 소개합니다. 1. Python에서 XML을 JSON으로 변환하려면 xml.etree.ElementTree 모듈을 사용할 수 있습니다.

Python을 사용하여 XML의 오류 및 예외 처리 Python을 사용하여 XML의 오류 및 예외 처리 Aug 08, 2023 pm 12:25 PM

Python을 사용하여 XML에서 오류 및 예외 처리하기 XML은 구조화된 데이터를 저장하고 표현하는 데 일반적으로 사용되는 데이터 형식입니다. Python을 사용하여 XML을 처리할 때 때때로 오류와 예외가 발생할 수 있습니다. 이 기사에서는 Python을 사용하여 XML의 오류 및 예외를 처리하는 방법을 소개하고 참조용 샘플 코드를 제공합니다. XML 구문 분석 오류를 잡기 위해 try-Exception 문을 사용하십시오. Python을 사용하여 XML을 구문 분석할 때 가끔 오류가 발생할 수 있습니다.

Python은 XML의 특수 문자와 이스케이프 시퀀스를 구문 분석합니다. Python은 XML의 특수 문자와 이스케이프 시퀀스를 구문 분석합니다. Aug 08, 2023 pm 12:46 PM

Python은 XML의 특수 문자와 이스케이프 시퀀스를 구문 분석합니다. XML(eXtensibleMarkupLanguage)은 서로 다른 시스템 간에 데이터를 전송하고 저장하는 데 일반적으로 사용되는 데이터 교환 형식입니다. XML 파일을 처리할 때 특수 문자와 이스케이프 시퀀스가 ​​포함되어 구문 분석 오류가 발생하거나 데이터가 잘못 해석될 수 있는 상황이 자주 발생합니다. 따라서 Python을 사용하여 XML 파일을 구문 분석할 때 이러한 특수 문자와 이스케이프 시퀀스를 처리하는 방법을 이해해야 합니다. 1. 특수문자 및

C# 개발에서 XML 및 JSON 데이터 형식을 처리하는 방법 C# 개발에서 XML 및 JSON 데이터 형식을 처리하는 방법 Oct 09, 2023 pm 06:15 PM

C# 개발에서 XML 및 JSON 데이터 형식을 처리하려면 특정 코드 예제가 필요합니다. 최신 소프트웨어 개발에서는 XML과 JSON이 널리 사용되는 두 가지 데이터 형식입니다. XML(Extensible Markup Language)은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어인 반면, JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. C# 개발에서는 XML 및 JSON 데이터를 처리하고 조작해야 하는 경우가 많습니다. 이 기사에서는 C#을 사용하여 이 두 가지 데이터 형식을 처리하고 첨부하는 방법에 중점을 둘 것입니다.

See all articles