BizTalk 편집기 확장
BizTalk 편집기는 대체 인스턴스 메시지 형식을 지원하는 확장을 허용하도록 디자인되었습니다. 실제로 XML 형식은 BizTalk 편집기에서 지원되는 유일한 형식입니다. Microsoft BizTalk Server 포함된 플랫 파일 형식에 대한 지원도 BizTalk 편집기 확장으로 구현되므로 이러한 확장에서 추가할 수 있는 기능 형식의 좋은 예가 됩니다.
일반적으로 BizTalk 편집기 확장은 사용자 지정 데이터를 스키마 트리의 노드에 해당하는 XSD(XML 스키마 정의) 요소와 연결된 XSD 언어 주석으로 보유합니다. 플랫 파일 확장에 의해 BizTalk 편집기에 추가된 포괄적인 주석 집합이 바로 BizTalk 편집기 확장이 스키마에서 해당 사용자 지정 데이터를 보유하는 방법을 적절히 보여 주는 예가 됩니다.
BizTalk 편집기 확장은 BizTalk 편집기의 기능을 확장하는 .NET 어셈블리입니다. 확장으로 식별하려면 어셈블리에 IExtension 인터페이스를 구현하는 클래스가 하나 있어야 하며 제품 설치 디렉터리의 개발자 도구\스키마 편집기 확장 폴더 아래에 있어야 합니다.
확장의 개발자는 해당 어셈블리가 BizTalk 편집기에 확장된 기능을 제공하는 데 필요한 모든 인터페이스 정의가 들어 있는 Microsoft.BizTalk.SchemaEditor.Extensibility.dll을 참조하도록 해야 합니다. 이러한 인터페이스는 Microsoft.BizTalk.SchemaEditor.Extensibility 네임스페이스 아래에 정의됩니다.
IExtension 인터페이스는 BizTalk 편집기가 속성 관리자, 사용자 지정 뷰, 스키마 유효성 검사, 네이티브 instance 생성 및 네이티브 instance 유효성 검사와 같은 확장 기능에 액세스하는 확장의 진입점입니다.
지정된 스키마에는 여러 확장이 연결될 수 있지만 지정된 시간에 하나의 확장만 표준으로 설정할 수 있습니다. 스키마 노드의 Standard 속성에 설정됩니다. 현재 표준으로 설정된 확장이 네이티브 인스턴스 생성 및 유효성 검사와 스키마 유효성 검사에 사용됩니다.
스키마 노드의 스키마 편집기 확장 속성을 편집하여 지정된 스키마 와 확장을 연결할 수 있습니다. 스키마와 연결된 확장에 대한 정보는 다음 XSD 조각과 같이 스키마 요소의 주석 요소 내에 스키마 자체에 저장됩니다.
<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns="http://BizTalk_Server_Project1.Schema11"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
targetNamespace="http://BizTalk_Server_Project1.Schema11"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<schemaEditorExtension:schemaInfo namespaceAlias="b"
extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension"
standardName="Flat File"
xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
<b:schemaInfo schema_type="document" root_reference="Root"
is_receipt="no" schema_name="abc"
standard="Flat File"
count_positions_by_byte="false" />
</xs:appinfo>
</xs:annotation>
<xs:element name="Root">
...
확장 개체를 인스턴스화한 후 프레임워크는 IExtension 인터페이스의 Initialize 메서드를 호출하여 확장이 스키마 트리에 대한 정보에 액세스할 수 있도록 ITree 개체를 전달합니다. 예를 들어 확장은 ITree.RootNode 속성에 액세스하여 모든 자식 노드를 트래버스할 수 있습니다.
이 섹션에서는 BizTalk 편집기 확장이 BizTalk 편집기 환경에 통합되는 방식 및 기존 BizTalk 편집기 명령에 자동으로 연결되는 방법을 설명합니다.