我需要为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>
答案 0 :(得分:0)
如果FS和GS表示字符x1C和x1D(^ \和^]),那么在任何XML技术中处理它们都会很困难:它们不允许在任何XML文档中显示为文字字符(虽然在XML 1.1中可以使用数字字符引用来引用它们。
您可能最好编写一个简单的垫片,将输入数据转换为更兼容XML的形式,然后再尝试使用XSD验证它(或者您引用的任何模式语言&#39; NXSD&# 39;)或使用基于XML的工具处理它。