2012-03-08 3 views
1

특정 필드에 대한 제한/열거 형을 가진 XSD 파일 (XML 파일의 스키마 레이아웃)이 있습니다. 예 : 내 속성에는 "자동차"라는 제목이 있으며 특정 값 ("혼다", "포드", "GMC", "도요타"등) 만 허용됩니다.XSD 제한/제한 열거

VBA (또는 다른 언어) 내에서 MSXML 및/또는 DOM XML 모델을 사용하여 (예 : "Honda", "Ford", "GMC", "Toyota"등) 제한을 유도하는 방법이 있습니까? 특성/노드 ("자동차") XSD에서?

이상적인 최종 상태/목표는 노드의 xpath 위치가 문자열 형식 (예 : "/ Root/Car")으로 전달되고 문자열 배열이 반환되는 XSD/Map을로드 한 후 함수를 작성하는 것입니다. 해당 노드의 허용 필드!

모든 통찰력이나 참고 문헌은 크게 감사드립니다!

감사합니다.

답변

1

나는 '쉬운'해결책을 모릅니다. 나는 당신이 묘사하고있는 것과 유사하지만 '수동으로'즉 꽤 많은 코드를 작성했습니다.

내가 찾을 수 있었던 라이브러리는 다음과 같습니다. http://xpath-on-schema.sourceforge.net/,하지만 Java 기반이고 .NET 사용자이기 때문에 실제로 시도하지 않았습니다. 상대적으로 쉬운 사용 방법과 클래스는 당신이 필요로하는 모든 것을 거기에 액세스 할 수 있습니다

using (FileStream fs = new FileStream(xsdPath, FileMode.Open, FileAccess.Read)) { 
    XmlSchema schema = XmlSchema.Read(fs, null); 
} 

다음 : 당신은 .NET에서 뭔가를 개발 OK 경우

내 제안은 XmlSchema 클래스를 사용하는 것 스키마 - 예 허용 가능한 값 목록 (또는 다른 제한 사항)을 Facets 속성에 포함하는 문자열과 같은 단순 유형에 대한 제한 사항에 해당하는 클래스 XmlSchemaSimpleTypeRestriction이 있습니다.