문제

지 않았의 인식 차이는 있지만,동료가 있다고 말하지만 그는 할 수 없습니다.의 차이는 무엇이 있다면?

도움이 되었습니까?

해결책

차이가 있습니다.

XML을 준수하는 XML XML 표준 잘 형성되는 것으로 간주되는 반면 XML은 DTD 유효한 것으로 간주됩니다.

다른 팁

유효한 XML은 DTD에 대한 유효성 검사에 성공하는 XML입니다.

잘 형성된 XML은 모든 태그를 올바른 순서로 닫은 XML이며, 선언이있는 경우 적절한 속성이있는 파일에서 가장 먼저해야합니다.

다시 말해, 유효성은 의미론을 말하며, 성형은 구문을 나타냅니다.

따라서 유효하지 않은 XML을 잘 형성 할 수 있습니다.

적정 대 유효한 XML

형식 텍스트 객체가 만나는 것을 의미합니다 W3C 요구 사항 ~을 위한 XML입니다.

유효한 잘 형성된 XML은 지정된 스키마에서 제공 한 추가 요구 사항을 충족한다는 것을 의미합니다.


공식 정의

XML에 대한 W3C 권장 사항:

정의 : 데이터 객체는 XML 문서입니다. 형식, 이 사양에 정의 된대로. 또한 XML 문서는 다음과 같습니다 유효한 특정 추가 제약을 충족하는 경우.


관찰 :

  • 잘 형성되지 않은 문서는 XML이 아닙니다. (형성된 XML 일반적으로 사용되지만 기술적으로 중복됩니다.)
  • 유효하다는 것은 잘 형성되는 것을 의미합니다.
  • 잘 형성된다고해서 유효하다는 것을 의미하지는 않습니다.
  • 비록 XML에 대한 W3C 권장 사항 정의합니다 타당성 DTD에 반대하기 위해 기존의 사용은이 용어를 XSD, NG를 이완시킵니다, 스키드론, 또는 다른 방법.

문서의 원인이 무엇인지에 대한 예 : ...

잘 형성되지 않았습니다:

  • 요소에는 닫는 태그가없고 자체 폐쇄되지 않습니다.
  • 적절한 둥지없이 요소 중첩 : <a><b></a></b>
  • 속성 값은 오프닝 견적과 일치하는 닫는 견적이 없습니다.
  • < 또는 & 콘텐츠에 사용됩니다 &lt 또는 &amp;.
  • 여러 뿌리 요소가 있습니다.
  • 여러 XML 선언이 존재하거나 XML 선언이 문서 상단 이외의 다른 표시가 나타납니다.

유효하지 않은:

  • 요소 또는 속성은 누락되었지만 XML 스키마에는 필요합니다.
  • XML 스키마는 요소 또는 속성이 사용되지만 정의되지 않습니다.
  • 요소의 내용은 XML 스키마에서 지정된 컨텐츠와 일치하지 않습니다.
  • 속성 값은 XML 스키마에서 지정된 유형과 일치하지 않습니다.

네임 스페이스-웰 형식

기술적으로 콜론 문자는 XML의 구성 요소 이름으로 허용됩니다. 그러나 콜론 ~해야 한다 네임 스페이스 목적으로 만 사용됩니다.

메모:

XML 권장 사항의 네임 스페이스 [XML 이름] 콜론 문자가 포함 된 이름에 의미를 할당합니다. 따라서 저자는 네임 스페이스 목적을 제외하고 XML 이름으로 결장을 사용해서는 안되지만 XML 프로세서는 콜론을 이름 문자로 받아 들여야합니다.

따라서 또 다른 용어, 네임 스페이스-웰 형식, XML 1.0 W3C 권장 사항의 네임 스페이스 이는 모든 XML 규칙을 잘 형성합니다 ...을 더한 통치 네임 스페이스와 네임 스페이스 접두사.

구어 적으로, 용어 형식 종종 어디에서 사용됩니다 네임 스페이스-웰 형식 더 정확할 것입니다. 그러나 이것은 실용적인 결과의 사소한 기술적 방식입니다. 적정 대 유효한 XML 이 답변에 설명되어 있습니다.

다른 사람들이 말했듯이, 잘 형성된 XML은 XML 사양을 준수하고 유효한 XML은 주어진 스키마를 준수합니다.

그것을 넣는 또 다른 방법은 잘 형성된 XML이 어휘 올바른 (구문 분석 할 수 있음), 유효한 XML은 문법적으로 올바른 (알려진 어휘와 문법과 일치 할 수 있음).

XML 문서는 잘 형성 될 때까지 유효 할 수 없습니다. 모든 XML 문서는 성형에 대한 동일한 표준 (W3에 의해 출시 된 RFC)에 대한 표준으로 유지됩니다. 하나의 XML 문서는 일부 스키마에 대해 유효 할 수 있으며 다른 스키마에 대해 유효하지 않을 수 있습니다. 많은 스키마 언어가 있으며 그 중 다수는 XML 기반입니다.

잘 형성된 XML은 언어의 구문 요구 사항을 충족하는 XML입니다. 닫는 태그가 없어지지 않고 모든 싱글 톤 태그가 사용됩니다. <whatever /> 그냥 대신 <whatever>, 닫기 태그를 올바른 순서로 사용합니다.

유효한 XML은 DTD를 사용하고 모든 요구 사항을 준수하는 XML입니다. 따라서 속성을 부적절하게 사용하면 DTD를 위반하고 유효하지 않습니다.

모든 유효한 XML은 잘 형성되었지만 잘 형성된 모든 XML이 유효하지는 않습니다.

XML 가 잘 형성되는 경우에 요구 사항을 충족에 대한 모든 XML 문서에 의해 설정된 표준에 따라 같은 것들을 하나의 루트 노드 노드를 갖는 제대로 중첩된,모든 노드를 갖는 폐 태그(또는 사용하는 빈 노드의 속기의 슬래시 폐쇄하기 전에 각 브라켓),특성이 인용되고 있는 등등.잘 형성되는 것을 의미는 그것을 준수하는 규칙의 XML 및 수 있습니다 따라서 해석됩니다.

XML 은 유효한 것입니다 경우에 대해 유효성을 검사 DTD 또는 스키마에 있습니다.이것은 분명히 다릅니다 경우-XML 유효한에 대해 하나의 스키마로 유효하지 않습에 대하여 다른 스키마도 그것은 여전히 잘 형성되어 있다.

는 경우 XML 지 않을 잘 형성할 수 없습니다 올바로 구문 분석-파서는 단순히 예외 또는 보고서는 오류가 있습니다.이것은 일반적이고 그것이 무엇인지는 중요하지 않 XML 포함되어 있습니다.한 번만 그것이 구문 분석 수 있는 검사에 대한 타당성을 지니고 있습니다.이 도메인 또는 컨텍스트에 따라 필요 DTD 또는 스키마를 확인합니다.에 대한 간단한 XML 문서를되지 않을 수도 있습 DTD 또는 스키마 이런 경우에는 알 수 없는 경우에는 XML 은 유효한-개념 또는 유효하지 않고 단순히 이 경우에 적용됩니다.물론,이것은 의미하지 않는 사용할 수 없습니다 그것은,그것은 단지 당신에게 말할 수 없는지 그 유효합니다.

W3C,XML 사양을 정의는 특정 규칙을 따라야기를 만드는 동안 XML 문서입니다.의 예는 같은 규칙을 포함하는 정확히 한 개의 루트 요소는 끝 태그에 대한 각각의 시작 태그를 사용하여,단 하나/두 배 따옴표에 대한 속성 값니다.는 경우 XML 문서를 다음과 같이 이러한 모든 규정,그것은 잘 형성 문서와 XML 파서 사용할 수 있을 분석하고 이러한 프로세스 문서입니다.

문서 유형에 정의(Dtd)또는 XML 스키마를 정의하는 데 사용할 수 있습의 구조와 콘텐츠는 특정 클래스의 XML 문서입니다.이 포함되어 있는 부모-자녀 관계 정보,특성 목록,데이터 입력한 정보,가치한 제한,등등.외에도 올바른 형식 규칙는 경우,XML 문서는 또한 다음과 같이 지정된 규칙에 관련된 DTD/는 스키마 이라고 말할 수 있는 유효한 XML 문서입니다.

모든 유효한 XML 문서가 잘 형성,하지만 역은 항상 진실하지 않다.로 구성된 XML 문서를 반드시 필요가 없을 유효한 것으로 간주합니다.

유효한 XML은 또한 잘 형성되었지만 잘 형성된 XML이 반드시 유효하지 않다는 것을 암시합니다.

위에서 언급 한 DTD 외에도 XML 문서를 설명하고 검증하는 두 가지 다른 방법이 있습니다. xmlschema 그리고 Relaxng, 둘 다 DTD보다 더 많은 기능을 사용하고 지원하기가 더 쉽습니다.

XML이 DTD 규칙을 확인하는 경우 유효한 XML입니다. XML 문서가 XML 규칙을 준수하는 경우 (모든 태그가 닫히고, 루트 요소 등이 있습니다) 잘 형성된 XML입니다.

가져 왔습니다 Extensible Markup Language (XML) 1.0 (5 판) -W3C 추천 2008 년 11 월 26 일 :

정의 : 데이터 객체는이 사양에 정의 된대로 잘 형성된 경우 XML 문서입니다. 또한 XML 문서는 특정 추가 제약 조건을 충족하면 유효합니다.


텍스트 단락 시점에서 psuedo-code를 선호하는 사람들을 위해 ... :)

IF is_well_formed(<XML_doc>) THEN
    # It is well-formed, and can be parsed
    IF is_valid(<XML_doc>) THEN
        # Well-formed and ALSO valid. Hurray! 
        # **A valid XML doc, is a well-formed doc!**
    ELSE
        # Only well-formed, NOT valid
    END IF
ELSE
    # Not well-formed, or valid!
END IF

FUNCTION is_well_formed
    IF <does_not_contain_syntax,_spelling,_punctuation,_grammar_errors,_etc._errors> THEN
        RETURN TRUE
    ELSE 
        RETURN FALSE
    END IF
END FUNCTION 

FUNCTION is_valid
    IF <markup_of_the_XML_document_matches_"some"_defined_standard> THEN
        # Standards used to validate XML could be a DTDs or XML Schemas, referenced within the XML document
        RETURN TRUE
    ELSE 
        RETURN FALSE
    END IF
END FUNCTION

이론에 근거한 : "잘 형성"대 유효한

DTD는 문서 유형 정의의 약어입니다. 이것은 XML 파일 제품군의 내용에 대한 설명입니다. 이는 XML 1.0 사양의 일부이며, 주어진 문서 인스턴스가 해당 구조 및 내용을 자세히 설명하는 규칙 세트를 준수하는지 설명하고 확인할 수 있습니다.

유효성 검사는 DTD에 대해 문서를 확인하는 프로세스입니다 (보다 일반적으로 일련의 건설 규칙에 대해).

검증 프로세스와 빌드 DTD는 XML 수명주기에서 가장 어려운 두 부분입니다. 간단히 DTD는 문서 내에서 찾을 수있는 가능한 모든 요소, 문서 트리의 공식적인 형태가 무엇입니까 (요소의 허용 된 내용을 정의하여, 텍스트, 허용 된 어린이 목록에 대한 정규 표현 또는 혼합 내용. 즉, 텍스트와 어린이 모두). DTD는 또한 모든 요소와 해당 속성의 유형에 대한 유효한 속성을 정의합니다.

글쎄, 정의에 따라 잘 형성되지 않은 XML은 XML이 아닙니다. Poeple은 일반적으로 유효한 XML을 특정 스키마 (XSD 또는 DTD)에 부착하는 XML이라고합니다.

보다 W3 학교의 XML DTD:

올바른 구문이있는 XML 문서를 "잘 형성"이라고합니다.

DTD에 대해 검증 된 XML 문서는 "잘 형성"및 "유효"입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top