null XML 요소를 나타내는 올바른 방법은 무엇입니까?
본 적이 있습니다null요소는 여러 가지로 표현됩니다.
에 합니다가 .xsi:nil="true":
<book>
<title>Beowulf</title>
<author xsi:nil="true"/>
</book>
요소가 있지만 빈 요소로 표시됩니다('공백' 이후로 틀렸다고 생각됩니다).null는 의미론적으로 다릅니다.):
<book>
<title>Beowulf</title>
<author/>
</book>
<!-- or: -->
<book>
<title>Beowulf</title>
<author></author>
</book>
반환되는 마크업에 요소가 전혀 없습니다.
<book>
<title>Beowulf</title>
</book>
요소에는 하위 요소가 있습니다(아래 TS탬퍼에서).
<book>
<title>Beowulf</title>
<author><null/></author>
</book>
?null가치? 위의 예시들 이외에 추가적인 방법들이 있습니까?
위의 예에 대한 XML은 작위적인 것이므로 너무 깊이 읽지 마십시오.:)
xsi:nil는 다음과 같은 값을 나타내는 올바른 방법입니다.DOM Level 2 call getElementValue()가 발행되면 NULL 값이 반환됩니다.xsi: nil는 해당 요소 내용 유형에서 일반적으로 빈 요소를 허용하지 않더라도 내용이 없는 유효한 요소를 나타내는 데도 사용됩니다.
빈 태그가 사용되는 경우 getElementValue()는 빈 문자열("")을 반환합니다. 태그가 생략되면 작성자 태그도 없습니다.이는 'nil'(예)로 설정하는 것과 의미상 다를 수 있습니다.시리즈를 0으로 설정하면 책이 시리즈에 속하지 않는 반면 시리즈를 생략하면 현재 요소에 적용할 수 없는 요소가 될 수 있습니다.)
출처: The W3C
XML 스키마: 구조는 빈 콘텐츠를 필요로 하지 않거나 심지어 반드시 허용해야 하는 콘텐츠 유형에도 불구하고 콘텐츠가 없을 때 요소를 ·유효한 것으로 받아들여야 한다는 것을 알리는 메커니즘을 도입합니다.요소가 값이 true인 xsi:nil 속성을 가지면 내용이 없는 ·valid·일 수 있습니다.레이블이 지정된 요소는 비어 있어야 하지만 해당 복합 형식에서 허용하는 경우 특성을 전달할 수 있습니다.
:
중 할 때 가지 옵션이 있습니다.book xml다 book:series가.
- 요소 전체 제거 - 시리즈가 이 책에 적용되지 않거나 해당 책이 시리즈의 일부가 아님을 표시하고자 할 때 수행할 수 있습니다.이 경우 book:series와 일치하는 템플릿이 있는 xsl 변환(또는 다른 이벤트 기반 프로세서)은 절대로 호출되지 않습니다.예를 들어, xsl에서 북 요소를 테이블 행(xhtml:tr)으로 변환하면 이 메서드를 사용하여 잘못된 테이블 셀 수(xhtml:td)를 얻을 수 있습니다.
- 요소를 비워 두면 시리즈가 ""이거나 알 수 없거나 책이 시리즈의 일부가 아님을 나타낼 수 있습니다.book:series와 일치하는 모든 xsl 변환(또는 기타 envert 기반 파서)이 호출됩니다.전류()의 값은 ""이 됩니다.이 방법을 사용하면 다음 설명한 것과 동일한 수의 xhtml:td 태그를 얻을 수 있습니다.
- xsi: nil= "true" 사용 - book:series 요소가 비어 있을 뿐만 아니라 NULL임을 의미합니다.템플릿 일치 북:시리즈가 있는 xsl 변환(또는 다른 이벤트 기반 파서)이 호출됩니다.current() 값은 비어 있습니다(빈 문자열이 아님).이 메서드와 (2)의 주요 차이점은 book:series의 스키마 유형에 빈 문자열("")을 유효한 값으로 허용할 필요가 없다는 것입니다.직렬 요소의 경우 실제로 의미가 없지만 스키마에서 열거형으로 정의된 언어 요소의 경우 xsi: nil= "true"를 사용하면 요소에 데이터가 없습니다.다른 예로는 십진법 형태의 요소가 있습니다.공백으로 사용하려면 ""와 10진수만 사용할 수 있는 열거된 문자열을 결합하거나 nillable인 10진수를 사용할 수 있습니다.
XML에는 기본적으로 null 개념이 없기 때문에 표준 답변이 없습니다.그러나 객체 그래프에 null이 있으므로 Xml/Object 매핑을 원하는 것으로 가정합니다. 따라서 "도구가 무엇을 사용하든지"가 답이 됩니다.만약 당신이 취급을 쓴다면, 그것은 당신이 원하는 무엇이든 의미합니다., XML우를 의 경우,xsi:nil가야 할 길입니다.대부분의 맵퍼의 경우 일치하는 요소/속성을 생략하는 것이 방법입니다.
검사를 . XML을 올바른 할 수 있습니다.null합니다.xsi:nil기여하다.
[출처]
w3 링크의 문서:
http://www.w3.org/TR/REC-xml/ #sec-start 태그
권장 양식은 다음과 같습니다.
<test></test>
<test/>
다른 답변에서 언급된 속성은 유효성 확인 메커니즘이며 상태를 나타내는 것이 아닙니다.다음을 참조하시기 바랍니다: http://www.w3.org/TR/xmlschema-1/ #xsi_
XML 스키마: 구조는 빈 콘텐츠를 필요로 하지 않거나 심지어 반드시 허용해야 하는 콘텐츠 유형에도 불구하고 콘텐츠가 없을 때 요소를 ·유효한 것으로 받아들여야 한다는 것을 알리는 메커니즘을 도입합니다.요소가 값이 true인 xsi:nil 속성을 가지면 내용이 없는 ·valid·일 수 있습니다.레이블이 지정된 요소는 비어 있어야 하지만 해당 복합 형식에서 허용하는 경우 특성을 전달할 수 있습니다.
이 답변을 명확히 설명합니다.
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book>
<!--This element should alway be empty-->
<BuildAttributes HardCover="true" Glued="true" xsi:nil="true"/>
<Index></Index>
<pages>
<page pageNumber="1">Content</page>
</pages>
<!--Valid representation of a null or empty ISBN-->
<ISBN></ISBN>
</Book>
<Book>
<!--Invalid construct since the element attribute xsi:nil="true" signal that the element must be empty-->
<BuildAttributes HardCover="true" Glued="true" xsi:nil="true">
<anotherAttribute name="Color">Blue</anotherAttribute>
</BuildAttributes>
<Index></Index>
<pages>
<page pageNumber="1">Content</page>
</pages>
<!--Missing ISBN could be confusing and misguiding since its not present-->
</Book>
</Books>
당신이 사용.xsi:nil스키마 의미론에서 요소에 기본값이 있으며 요소가 없는 경우 기본값이 사용되어야 함을 나타내는 경우.앞 문장이 자명하게 끔찍한 생각이 아닌 똑똑한 사람들이 있다고 가정해야 하는데, 제게는 아홉 가지 나쁜 소리로 들립니다.내가 작업한 모든 XML 형식은 요소를 생략하여 null 값을 나타냅니다. (또는 속성, 그리고 속성을 다음과 같이 표시하는 행운을 빕니다.)xsi:nil.)
속성이나 요소를 간단히 생략하는 것이 형식적이지 않은 데이터에서 잘 작동합니다.
보다 정교한 정보가 필요한 경우 GML 스키마는 nilReason 속성을 추가합니다. 예: GeoSiML:
xsi:nil값이 "true"인 경우 사용 가능한 값이 없음을 나타내는 데 사용됩니다.nilReason누락된 값에 대한 추가 정보를 기록하는 데 사용될 수 있습니다. 이는 표준 GML 이유 중 하나일 수 있습니다.missing, inapplicable, withheld, unknown), 또는 텍스트 앞에 붙입니다.other:, 또는 보다 상세한 설명에 대한 URI 링크일 수 있습니다.
XML이 일반적으로 사용되는 역할인 데이터를 교환할 때, 한 수신자에게 전송된 데이터 또는 특정 목적을 위해 전송된 데이터는 다른 사용자가 사용할 수 있는 내용이 가려져 있을 수 있습니다.콘텐츠가 빠진 이유를 아는 것은 매우 중요할 수 있습니다.
과학자들은 또한 왜 정보가 부족한지에 대해서도 염려하고 있습니다.예를 들어 품질상의 이유로 데이터를 삭제한 경우 원래의 잘못된 데이터를 보고 싶어할 수 있습니다.
대부분의 경우 Null 값의 목적은 이전 버전의 응용 프로그램에 존재하지 않는 데이터 값에 사용하는 것입니다.
애플리케이션 "ReportMaster" 버전 1의 xml 파일이 있다고 가정해 보겠습니다.
ReportMaster 버전 2에서는 정의되거나 정의되지 않을 수 있는 몇 가지 특성이 추가되었습니다.
no tag means null' 표현을 사용하면 ReportMaster 1 xml 파일을 읽을 수 있는 이전 버전과의 자동 호환성을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/774192/what-is-the-correct-way-to-represent-null-xml-elements
'programing' 카테고리의 다른 글
| AngularJS I18n 파일은 어디에 있습니까? (0) | 2023.09.20 |
|---|---|
| jquery 이벤트 핸들러 덮어쓰기 방법 (0) | 2023.09.20 |
| jQuery/Ajax 작업으로 UTF-8 양식 텍스트 영역을 제출하려면 이 코드를 어떻게 만들어야 합니까? (0) | 2023.09.20 |
| angularJS에서 내부 콜백에서 $scope 업데이트 (0) | 2023.09.20 |
| XMLHttpRequest 개체를 재사용하시겠습니까? 아니면 새 개체를 만드시겠습니까? (0) | 2023.09.20 |