Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

flexml - Trực tuyến trên đám mây

Chạy flexml trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks qua Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

Đây là lệnh flexml có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


flexml - tạo bộ xử lý XML xác thực và các ứng dụng từ DTD

SYNOPSIS


flexml [-ASHDvdnLXV] [-schia] [-pcó lông mu] [-iinit_header] [-us] [-rthẻ gốc] [-ahành động]
tên[.dtd]

MÔ TẢ


Flexml đọc tên.dtd phải là một DTD (Định nghĩa loại tài liệu) mô tả định dạng
tài liệu XML (Ngôn ngữ đánh dấu có thể mở rộng) và tạo ra một XML "xác thực" bộ vi xử lý
với giao diện hỗ trợ XML ứng dụngS. Các ứng dụng phù hợp có thể được tạo ra
tùy chọn từ "tệp hành động" đặc biệt, để liên kết hoặc kết hợp văn bản với
xử lý.

Bộ xử lý được tạo sẽ chỉ xác nhận các tài liệu tuân thủ nghiêm ngặt DTD,
không có mở rộng it, chính xác hơn, trên thực tế, chúng tôi hạn chế quy tắc XML [28] đối với

[28r] doctypedecl :: = ' '

trong đó "ExternalId" biểu thị DTD đã sử dụng. (Trên thực tế, người ta có thể nói rằng flexml
triển khai đánh dấu "không thể mở rộng". :)

Bộ xử lý được tạo là một uốn cong(1) máy quét, được đặt tên mặc định tên.l với một tương ứng
Tệp tiêu đề C tên.h để biên dịch riêng các ứng dụng đã tạo. Tùy ý
flexml mất một hành động tệp với các hành động trên mỗi phần tử và tạo tệp C với phần tử
các hàm cho một ứng dụng XML với các điểm nhập được gọi từ bộ xử lý XML (nó có thể
cũng gấp ứng dụng XML vào bộ xử lý XML để tạo các ứng dụng XML độc lập
nhưng điều này ngăn cản việc chia sẻ bộ xử lý giữa các ứng dụng).

Trong "TÙY CHỌN", chúng tôi liệt kê các tùy chọn có thể có, trong "ĐỊNH DẠNG TẬP TIN HÀNH ĐỘNG", chúng tôi giải thích cách viết
ứng dụng, trong "COMPILATION", chúng tôi giải thích cách biên dịch các bộ xử lý được sản xuất và
ứng dụng thành tệp thực thi và trong "BUGS", chúng tôi liệt kê các hạn chế hiện tại của hệ thống
trước khi đưa ra các tài liệu tham khảo tiêu chuẩn.

LỰA CHỌN


Flexml có các tùy chọn sau đây.

- độc lập, -A
Tạo một độc lập ứng dụng máy quét. Nếu kết hợp với -ahành động sau đó
ứng dụng sẽ được đặt tên là hành động với phần mở rộng được thay thế bằng .l, nếu không thì nó
sẽ ở tên.l. Xung đột với -S, -H-D.

- giao dịch hành động, -a hành động
Sử dụng hành động tệp để tạo ứng dụng XML trong tệp có cùng tên với
hành động sau khi thay thế phần mở rộng bằng .c. Nếu kết hợp với -A sau đó thay vào đó
ứng dụng độc lập sẽ bao gồm các chức năng hành động.

- giả [tên ứng dụng], -D [tên ứng dụng]
Tạo một ứng dụng giả chỉ với các hàm trống được XML gọi
bộ xử lý. Nếu như tên ứng dụng không được chỉ định trên dòng lệnh, nó mặc định là
tên giả.c. Nếu kết hợp với -a hành động sau đó ứng dụng sẽ chèn
các hành động được chỉ định và được đặt tên là hành động với phần mở rộng được thay thế bằng .c.
Xung đột với -A; ngụ ý của -a trừ khi một trong hai -SHD được quy định.

--gỡ lỗi, -d
Bật chế độ gỡ lỗi trong máy quét flex và cũng in ra các chi tiết của DTD
phân tích được thực hiện bởi flexml.

--tiêu đề [tiêu đề_name], -H [tiêu đề_name]
Tạo tệp tiêu đề. Nếu tiêu đề_name không được chỉ định trên dòng lệnh,
mặc định là tên.h. Xung đột với -A; được bật theo mặc định nếu không có -SHD được chỉ định.

--lineno, -L
Làm cho bộ xử lý XML (được sản xuất bởi uốn cong(1)) đếm các dòng trong đầu vào và giữ
nó có sẵn cho các hành động ứng dụng XML trong số nguyên "yylineno". (Điều này tắt bởi
mặc định vì chi phí hiệu suất là đáng kể.)

--Yên lặng, -q
Ngăn bộ xử lý XML (do uốn cong(1)) từ báo cáo lỗi nó chạy
vào trên stderr. Thay vào đó, người dùng sẽ phải tổng hợp các thông báo lỗi với
parse_err_msg () chức năng. Theo mặc định, thông báo lỗi được viết trên stderr.

- chạy thử, -n
"Dry-run": không tạo bất kỳ tệp đầu ra nào.

--pubid có lông mu, -p có lông mu
Đặt loại tài liệu là "CÔNG KHAI" với số nhận dạng có lông mu thay vì "HỆ THỐNG",
mặc định.

--init_header init_header, -i init_header
Đặt một dòng có chứa "#include" init_header "" trong phần "% {...%}" ở đầu
tệp .l được tạo. Điều này có thể hữu ích để tạo các flex "#define" khác nhau, cho
ví dụ "YY_INPUT" hoặc "YY_DECL".

--sysid=sysid
Ghi đè id "SYSTEM" của DTD được chấp nhận. Đôi khi hữu ích khi dtd của bạn
được đặt trong một thư mục con.

--root-thẻ thẻ gốc, -r thẻ gốc
Hạn chế bộ xử lý XML chỉ xác thực các tài liệu có một trong các phần tử gốc
được liệt kê trong dấu phẩy được phân tách thẻ gốc.

--máy quét [tên_máy quét], -S [tên_máy quét]
Tạo máy quét. Nếu như tên_máy quét không được cung cấp trên dòng lệnh, nó mặc định là
tên.l. Xung đột với -A; được bật theo mặc định nếu không có -SHD được chỉ định.

--skel chia, -s chia
Sử dụng máy quét bộ xương chia thay vì mặc định.

--act-bin flexml-action, -T flexml-action
Đây là một tùy chọn nội bộ chủ yếu được sử dụng để kiểm tra các phiên bản flexml chưa được cài đặt.

- tăng dần stack_increment, -b stack_increment
Đặt FLEXML_BUFFERSTACKSIZE thành stack_increment (100000 theo mặc định). Điều này kiểm soát
mức độ phát triển của ngăn xếp dữ liệu trong mỗi realloc ().

tiền tố --tag STRING, -O STRING
Sử dụng STRING để phân biệt nhiều phiên bản flexml trong cùng một mã C, giống như
đối số -P flex.

--uri s, -u s
Đặt URI của DTD, được sử dụng trong tiêu đề "DOCTYPE", thành s (Các
mặc định là tên DTD).

--dài dòng, -v
Chi tiết: lặp lại từng khai báo DTD (sau khi mở rộng tham số).

--phiên bản, -V
In phiên bản của flexml và thoát ra.

HÀNH ĐỘNG FILE FORMAT


Tệp tác vụ, được chuyển đến -a tùy chọn, các tài liệu XML có tuân theo DTD không
flexml-act.dtd cái nào sau đây:








Các phần tử nên được sử dụng như sau:

"đứng đầu"
Sử dụng cho mã C cấp cao nhất như khai báo toàn cục, hàm tiện ích, v.v.

"bắt đầu"
Đính kèm mã dưới dạng một hành động vào phần tử có tên của "" thẻ "" bắt buộc
thuộc tính. Thành phần ""% C-code; "" phải là mã C phù hợp để đưa vào C
block (nghĩa là bên trong "{" ... "}" nên nó có thể chứa các biến cục bộ); hơn nữa
có sẵn các phần mở rộng sau:

"{"thuộc tính"}": Có thể được sử dụng để truy cập giá trị của thuộc tính như thiết lập với
thuộc tính"="giá trị trong thẻ bắt đầu. Trong C, "{"thuộc tính"}" sẽ được hiểu
tùy thuộc vào khai báo của thuộc tính. Nếu thuộc tính được khai báo là
kiểu liệt kê như



thì giá trị thuộc tính C thuộc kiểu liệt kê với các phần tử được viết
"{"thuộc tính"="alt1"}", "{"thuộc tính"="alt2"}", Vân vân.; hơn nữa một không đặt thuộc tính
có "giá trị" "{!"thuộc tính"}". Nếu thuộc tính không phải là một kiểu liệt kê thì
"{"thuộc tính"}" là một chuỗi C được kết thúc bằng null (kiểu "char *") và "{!"thuộc tính"}"
là "NULL".

"kết thúc"
Tương tự, hãy đính kèm mã dưới dạng một hành động vào thẻ kết thúc với tên của yêu cầu
thuộc tính "" tag ""; cũng ở đây, thành phần ""% C-code; "" phải là mã C phù hợp với
bao gồm trong một khối C. Trong trường hợp phần tử có nội dung "Hỗn hợp", tức là đã được khai báo
để cho phép "#PCDATA", thì biến sau sẽ khả dụng:

"{#PCDATA}": Chứa văn bản ("#PCDATA") của phần tử dưới dạng C kết thúc bằng rỗng
string (kiểu "char *"). Trong trường hợp phần tử Nội dung hỗn hợp thực sự kết hợp văn bản và
các phần tử con thì "pcdata" chứa nối đơn giản của các đoạn văn bản dưới dạng
một chuỗi.

"chủ yếu"
Cuối cùng, một phần tử "" chính "" tùy chọn có thể chứa hàm C "chính" của XML
đơn xin. Thông thường, hàm "chính" nên bao gồm (ít nhất) một lệnh gọi của
Bộ xử lý XML:

"yylex ()": Gọi bộ xử lý XML do uốn cong(1) trên tài liệu XML được tìm thấy trên
đầu vào tiêu chuẩn (thực tế là xử lý tệp "yyin": xem hướng dẫn sử dụng cho uốn cong(1) cho
thông tin về cách thay đổi điều này cũng như tên "yylex").

Nếu không có hành động "chính" nào được cung cấp thì hành động sau được sử dụng:

int main () {exit (yylex ()); }

Bạn nên sử dụng các phần XML <"! [CDATA [" ... "]]"> cho mã C để đảm bảo rằng
tất cả các ký tự được chuyển đúng cách vào tệp đầu ra.

Cuối cùng lưu ý rằng Flexml xử lý các phần tử trốngtag"/"> tương đương vớitag> <"/"tag>.

TỔNG HỢP


Sau đây làm cho(1) phân đoạn tệp cho thấy cách người ta có thể biên dịch flexml-chương trình tạo:

# Chương trình.
FLEXML = flexml -v

# Tạo bộ xử lý XML có thể liên kết với tiêu đề cho ứng dụng.
% .l% .h:% .dtd
$ (FLEXML) $

# Tạo nguồn C từ máy quét flex.
% .c:% .l
$ (FLEX) -Bs -o "$ @" "$ <"

# Tạo nguồn C của ứng dụng XML để liên kết với bộ xử lý.
# Lưu ý: Phần phụ thuộc phải có dạng "appl.c: appl.act proc.dtd".
% .c:% .act
$ (FLEXML) -D -a $ ^

# Tạo trực tiếp ứng dụng + bộ xử lý XML độc lập.
# Lưu ý: Phần phụ thuộc phải có dạng "appl.l: appl.act proc.dtd".
% .l:% .act
$ (FLEXML) -A -a $ ^

Sử dụng flexml trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad