실제로 메타 문법은 위의 것을 복사하는 DTD보다 훨씬 더 정확할 수 있습니다. SMIL 사양에는 위의 문법과 결합할 수 있는 “endsync”의 값에 대한 문법이 있습니다. “endsync” 프로덕션은 ISO 표준 SGML의 프로필이며 대부분의 XML은 변경되지 않은 SGML에서 제공됩니다. SGML에서 논리적 및 물리적 구조 (요소 및 엔터티), 문법 기반 유효성 검사 (DTD)의 가용성, 데이터 및 메타 데이터 (요소 및 특성), 혼합 콘텐츠, 처리의 분리의 분리를 온다 표현(처리 지침) 및 기본 각도 대괄호 구문입니다. 제거된 SGML 선언(XML에는 고정 된 구분 기호 집합이 있고 유니코드를 문서 문자 집합으로 채택). DTD는 스키마 또는 문법의 예입니다. XML 1.0이 처음 게시된 이래로 XML에 대한 스키마 언어 영역에서 상당한 작업이 수행되었습니다. 이러한 스키마 언어는 일반적으로 문서에서 사용할 수 있는 요소 집합, 특성이 적용될 수 있는 속성, 나타날 수 있는 순서 및 허용되는 부모/자식 관계를 제한합니다. 이러한 선형화 구문을 개발자는 구조만 표현할 수 있는 간단한 표기법에 의해 도움이 되며, 구문 세부 정보는 자동화되었지만 프로세스를 이해하기 가 간단합니다.
소프트웨어 엔지니어는 BNF, EBNF 및 yacc와 같은 컨텍스트 없는 문법(CFG)에 익숙하며 CFG는 이러한 표기술의 이상적인 기반이 됩니다. yacc와 마찬가지로 개발자가 구문에 집중할 수 있고 시스템이 코드를 처리하도록 허용하므로 이 시스템은 한 단계 더 나아가 개발자가 구조에 집중할 수 있도록 하고 시스템이 구문을 처리하도록 할 수 있습니다. 위의 예제에서는 텍스트 및 INT를 사용하여 텍스트 데이터(공백, 줄 바꿈 및 기타 예약문자가 적절히 이스케이프됨) 및 정수(일부 표현에서 기본적으로 소수점)를 나타내기 위해 사용했습니다. 미리 정의된 터미널 기호를 사용하면 값 형식 집합을 BOOL( BOOL), 실제 숫자(REAL), 식별자(IDENT), URL(URI) 등으로 확장할 수 있습니다. 제안의이 부분은 위의 제한 때문에 더 흔들려야하지만, 여기에 시도입니다. 원래 문법으로 돌아가서 이번에는 개발자가 “val” 및 “type” 필드를 속성에 넣으려고 한다고 가정합니다. 방법은 다음과 같습니다: 다음은 위와 같은 예제로, 새 문법을 따르기 위해 다시 작성되었습니다: 이것은 XML 기반 형식을 정의하는 다른 제안이며 더 쉽게 접근할 수 있습니다. 이 접근 방식은 컨텍스트가 없는 문법으로 형식을 정의하는 데 기반을 두고 있지만 XML에서 이미 지정했기 때문에 실제로 터미널을 지정하지 는 않습니다. (어떤 의미에서 는 메타 문법입니다.) 이 방법의 효과는 이 접근 법으로 정의된 모든 형식이 모두 XML의 작고 잘 정의된 하위 집합을 사용하므로 형식에 대한 구문 분석기를 더 쉽게 구현할 수 있습니다. 우리는 pronciple에서 그것을 떠날 수 있습니다., 하지만 개발자는이 조금 너무 상세 고려 할 수 있습니다.
약간의 검사는 “”과 “”구분기호가 실제로 필요하지 않다는 것을 보여줍니다. 또한 ““라는 이름은 매우 설명적이지 않으며 대신 “”이라고 할 수 있습니다. 따라서 다음 섹션에서는 개발자가 자동 확장에 영향을 미치기 위해 문법에 넣을 수 있는 몇 가지 힌트를 제안합니다. 이것은 간단한 이진 트리 구조를 설명합니다. 그것은 나무에 대한 일반적인 방법 중 하나를 사용하여 선형화 할 수 있습니다, 의 사전 주문을 하자. 결과 선형화 된 데이터는 다음과 같은 문법으로 설명 할 수 있습니다 : RELAX NG (XML 차세대에 대한 일반 언어)는 처음에 OASIS에 의해 지정되었으며 이제 표준입니다 (파트 2 : ISO / IEC 19757 – DSDL의 정규 문법 기반 유효성 검사).