我需要为FS(文件分隔符)和GS(组分隔符)分隔的文件创建本机模式NXSD。有人能帮我一下吗?我不能创造一个。非常感谢你的帮助。下面是架构。我需要FS和GS分隔符的值终止…如果我用分号(;)或逗号(,)结束XSD,则它可以正常工作。我将在SOA中使用FT适配器阅读这些类型的文件…
<?xml version= '1.0' encoding= 'UTF-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
xmlns:tns="http://www.oracle.com/ApplicationObjectLibrary/GEMS/GEMSMessage/V1" targetNamespace="http://www.oracle.com/ApplicationObjectLibrary/GEMS/GEMSMessage/V1"
elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:version="NXSD" nxsd:stream="chars"
nxsd:encoding="ASCII">
<xsd:element name="GEMSMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GEMS" minOccurs="1" maxOccurs="1" nxsd:lookFor="ST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ST" type="xsd:string"
minOccurs="0" maxOccurs="1" default="ST" nxsd:style="terminated"
nxsd:terminatedBy=";"> --What will be nxsd:terminatedBy value for FS
</xsd:element>
<xsd:element name="STValue" type="xsd:string"
minOccurs="0" maxOccurs="1" nxsd:style="terminated"
nxsd:terminatedBy=";"/> -- --What will be nxsd:terminatedBy value for GS
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
如果FS和GS指的是字符x1C和x1D(^和^]),那么在任何XML技术中处理它们都会很困难:它们不允许在任何XML文档中作为文字字符出现(尽管在XML 1.1中可以使用数字字符引用来引用它们)。
在尝试用XSD(或您所说的"NXSD"的任何模式语言)验证输入数据或使用基于xml的工具处理它之前,最好编写一个简单的shim将输入数据转换成某种更兼容xml的形式。